2013-10-31 72 views
0

因此,我正在寫一個應用程序,其中我有一個自定義UIView,其中包含一個UIScrollView,其中包含一系列UIImageViews。我想這樣做,當我觸摸UIScrollView中的一個UIImageView時,會發生一個事件(現在,讓我們說我打印一個NSLog()或其他東西)。如何使用觸摸開始?

我知道存在着這樣的功能:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 

但我不完全知道如何使用它。哪個UIView應該實現這個功能?我在哪裏可以完全稱呼它?還是在接觸到某些東西時自動調用?我如何找到正確的UIImageView?

+0

將「UITapGestureRecognizer」添加到圖像視圖會容易得多。請記住,您需要將'userInteractionEnabled'設置爲'YES'來處理'UIImageView'來處理觸摸事件。 – rmaddy

回答

0

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event已經由UIView實現(實際上由UIResponder超類實現,默認情況下它什麼都不做)。這個方法可以讓你在子類中重寫以做你想做的事情。

只要在視圖邊界內開始觸摸,就會自動調用此方法。

在你的情況下使用UIButton和圖像可能會更好。

+0

那麼我應該創建一個自定義的UIImageView類,然後在該類中實現touchesBegan?我需要做任何類型的邊界檢查或爲我處理? – user1855952

+0

如果觸摸位於視圖邊界之外,您將不會收到消息(它會轉到其他視圖)。聽起來像你可能想要繼承UIImageView。 –

+0

@ user1855952你實際上可能想要使用UIButton,它不完全清楚你的要求是什麼。 –

0

而不是使用touchesBegin:,子類UIImageView,添加點擊手勢到這個新的類,並使用這個類,而不是你在scrollView上使用的ImageViews。

相關問題