簡體   English   中英

iOS在UIScrollview中點擊手勢

[英]iOS Tap Gesture in a UIScrollview

我有一個RootViewController及其相關的nibxib文件。 nib在應用啟動時加載。 這個nib文件在此scrollview中包含一個UIScrollView ,我放置了另一個自定義生成的nib newNib.xib文件。

在這個newNib.xib我對接口構建器進行了更改以響應RootViewController即自定義類RootViewController 然后,我鏈接了在RootViewController創建的一些UIView對象。 到目前為止一切都很好...

我已經定義了一些tapGestureRecognisersRootViewControllerUIViews定義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;

另外,您是否用兩根手指輕按了一次? 最后,確保該userInteractionEnabledYES上的UIView的那exclusiveTouchNOUIScrollView

暫無
暫無

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

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