簡體   English   中英

用圓形圖像層標記球-在iPhone上觸摸縮放或移動

[英]Mark a ball with a circular image layer- in iphone touch zoom or move

我有兩個圖像,一個網球和一個紅色標記圖像。 我需要將網球作為背景,並將紅色標記作為前景,就像在網球上的圖層一樣,並且需要根據網球的形狀調整紅色標記。 我必須通過捏和觸摸動作來實現這一目標。

以下是兩個圖像。

圖片1

在此處輸入圖片說明

圖片2(圖層):

在此處輸入圖片說明

最終圖像通過調整圓圈:

在此處輸入圖片說明

任何初學者都很好!!

有兩種方法(處理用戶觸摸):

  1. touchesBegan:withEvent:touchesMoved:withEvent:touchesEnded:withEvent:方法。 參考在這里: UIResponder-響應觸摸事件

  2. 手勢識別器(使用標准手勢識別器或創建自己的自定義手勢識別器)。 參考在這里: 手勢識別器 好的教程在這里

如果您只需要移動紅色圓圈,而不需要調整它的大小-使用touches...方法將很適合您。

但是,如果您想使用捏手勢來調整圓的大小,則可能需要創建自定義手勢識別器(並在其中實現相同的touches...方法)來處理觸摸和移動。 並使用標准的UIPinchGestureRecognizer處理捏手勢。

您需要創建自定義的手勢識別,因為非標准UITapGestureRecognizerUIPanGestureRecognizer有一些問題,因為它提到這里

UPD:

例如,您有UIViewController 您正在將UIImageView添加到viewController的view 您正在創建具有清晰背景的UIView並在其中繪制紅色圓圈,或者添加另一個帶有紅色圓圈的UIImageView (如果有圖像的話)。 我們稱之為redCircleView

您可以使redCircleView透明( redCircleView.alpha = 0 ),也可以在用戶觸摸屏幕時對其進行初始化。 我認為第二種選擇更好,但是我不確定。

在您的UIViewController您正在實現touchesBegan:withEvent:方法,您可以在其中設置redCircleView.alpha = 1或初始化此redCircleView

touchesMoved:withEvent:實現中,您可以使用UITouch:locationInView:在任何視圖中獲取觸摸UITouch:locationInView:

 (void) touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event {
      UITouch *touch = [touches anyObject];
      CGPoint point = [touch locationInView:self.view];
      .
      .
      .
 }

然后,您可以更改redCircleView.center (然后紅色圓圈的中心將在屏幕上跟隨手指),也可以存儲上一點的位置,將其與當前位置進行比較,然后移動redCircleView

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM