![](/img/trans.png)
[英]IOS, setting up Gesture Tap on UILabel thats inside a UIScrollView
[英]iOS Tap Gesture in a UIScrollview
我有一個RootViewController
及其相關的nib
或xib
文件。 該nib
在應用啟動時加載。 這個nib
文件在此scrollview中包含一個UIScrollView
,我放置了另一個自定義生成的nib
newNib.xib
文件。
在這個newNib.xib
我對接口構建器進行了更改以響應RootViewController
即自定義類RootViewController
。 然后,我鏈接了在RootViewController
創建的一些UIView對象。 到目前為止一切都很好...
我已經定義了一些tapGestureRecognisers
在RootViewController
上UIViews
定義newNib.xib
,但他們都沒有響應的點擊事件。 點擊我在RootViewController
定義的事件,如下所示-
UITapGestureRecognizer *messagesTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(messagesBucketTap:)];
[messagesTap setNumberOfTapsRequired:1];
[messagesTap setNumberOfTouchesRequired:2];
[self.messagesSnippet addGestureRecognizer:messagesTap];
[messagesTap release];
這里self.messagesSnippet
存在於newNib.xib
我也像這樣將xib
加載到RootViewController
-
[[NSBundle mainBundle] loadNibNamed:@"newNib" owner:self options:nil];
但是我仍然沒有將tapGesture傳遞給選擇器(messagesBucketTap)。 我究竟做錯了什么?
最可能的原因是您忘記設置點擊手勢識別器的委托,例如[messagesTap setDelegate:self]
。
假設-messagesBucketTap:
在同一類中聲明,請將代碼更改為:
UITapGestureRecognizer *messagesTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(messagesBucketTap:)];
[messagesTap setDelegate:self];
[messagesTap setNumberOfTapsRequired:1];
[messagesTap setNumberOfTouchesRequired:2];
[self.messagesSnippet addGestureRecognizer:messagesTap];
[messagesTap release];
如果這不起作用,請檢查Jamie所說的內容,並確保您聲明:
- (void)messagesBucketTap:(UITapGestureRecognizer *)gestureRecognizer;
並不是
- (void)messagesBucketTap;
另外,您是否用兩根手指輕按了一次? 最后,確保該userInteractionEnabled
是YES上的UIView的那exclusiveTouch
是NO上UIScrollView
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.