2013-03-16 72 views
1

我有兩個圖像,一個網球和一個紅色標記圖像。我需要將網球作爲背景,並將紅色標記作爲前景,如網球上方的一層,我需要根據網球的形狀調整紅色標記。我必須通過捏和觸摸操作來實現這一點。用圓形圖像圖層標記球 - 在iphone touch中縮放或移動

下面是兩張圖片。

圖1:

圖像2(層):

enter image description here

最終圖像通過調整圓:

enter image description here

對此的任何首發將是好!

+0

所以你有圖像上有球。當用戶開始與此圖像交互時,會出現紅圈(圖片2(圖層))和用戶,通過移動他的手指,調整紅圈?或者你想紅圈自動適應網球? – derpoliuk 2013-03-17 01:33:53

+0

@StasDerpoliuk我想讓用戶移動並調整紅色的圓以適應球! – Manoj 2013-03-18 06:25:21

回答

2

有兩種方法可以做到這一點(處理用戶觸摸):

  1. touchesBegan:withEvent:touchesMoved:withEvent:touchesEnded:withEvent:方法。參考在這裏:UIResponder - Responding to Touch Events

  2. 手勢識別器(使用標準手勢識別器或創建自己的自定義手勢識別器)。參考在這裏:Gesture Recognizers。好教程是here

如果你只需要移動紅圈,但不調整它的大小 - 使用touches...方法將是對你有好處。

但是,如果您想通過使用捏手勢來調整圓的大小 - 您可能需要創建自定義手勢識別器(並在其中執行相同的方法)以處理觸摸和移動;並使用標準UIPinchGestureRecognizer來處理捏手勢。

您需要創建自定義手勢識別器,因爲標準UITapGestureRecognizerUIPanGestureRecognizer有一些問題,因爲它提到了here

UPD:

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

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

在你UIViewController你實現touchesBegan:withEvent:方法,在那裏你要麼設置redCircleView.alpha = 1或初始化這個redCircleView

touchesMoved:withEvent:實現,你可以使用UITouch:locationInView:

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

然後你就可以更改redCircleView.center(當時的紅色圓圈中心將按照屏幕上的手指)獲得的任何視圖觸摸的位置,或者你可以存儲的位置先前的點,將其與當前位置進行比較,然後移動redCircleView

+0

如何在圖片上製作圖片?即球上的紅色圓圈?只觸摸並移動紅圈而不是球? – Manoj 2013-03-19 04:32:48

+0

@Manoj我已更新我的答案 – derpoliuk 2013-03-19 09:04:46

+0

感謝您的回答!和更新太!!!] \ – Manoj 2013-03-20 03:46:06