[英]Multiple Gesture Responders for a Single View
我有一張要設置為響應幾個不同手勢響應器的圖像。 因此,例如,如果觸摸了圖片的一部分,則我希望一個選擇器被調用,而另一個選擇器則用於圖片的另一部分。
我查看了UIGestureRecognizer
和UITapGestureRecognizer
類,但是找不到指定與它們關聯的圖像區域的方法。 在iOS中完全可行嗎? 如果是這樣,我應該考慮使用哪些類?
最簡單的解決方案是在圖像上放置不可見的視圖,並將手勢識別器放在圖像上。
如果這不可行,則必須查看手勢識別器的輕擊處理程序中的locationInView並根據用戶點擊的位置確定要執行的操作。
使用locationInView:
屬性確定點擊發生的位置,然后有條件地調用方法。 您可以通過設置一些與您的點擊區域相對應的CGRect
來實現。 然后,使用CGRectContainsPoint()
函數確定拍子是否落在擊中區域之一中。
您的點擊手勢識別器動作可能看起來像這樣:
- (void)tapGestureRecognized:(UIGestureRecognizer *)recognizer
{
// Specify some CGRects that will be hit areas
CGRect firstHitArea = CGRectMake(10.0f, 10.0f, 44.0f, 44.0f);
CGRect secondHitArea = CGRectMake(64.0f, 10.0f, 44.0f, 44.0f)
// Get the location of the touch in the view's coordinate space
CGPoint touchLocation = [recognizer locationInView:recognizer.view];
if (CGRectContainsPoint(firstHitArea, touchLocation))
{
[self firstMethod];
}
else if (CGRectContainsPoint(secondHitArea, touchLocation))
{
[self secondMethod];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.