我有RootViewController
&它是关联的nib
或xib
文件。应用程序启动时会加载此nib
。此nib
文件在此滚动视图中包含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
但是我仍然没有把tapGesture带到选择器(messagesBucketTap)。我做错了什么?
答案 0 :(得分:6)
最可能的原因是您 忘记设置点击手势识别器的代理 ,例如[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];
如果这不起作用,请检查杰米所说的内容,并确保您宣布:
- (void)messagesBucketTap:(UITapGestureRecognizer *)gestureRecognizer;
而不是
- (void)messagesBucketTap;
另外,你用两根手指敲击一次吗?最后,确保UIView上的userInteractionEnabled
是,exclusiveTouch
上的UIScrollView
否