gpt4 book ai didi

objective-c - UIScrollview 中的 iOS 点击手势

转载 作者:可可西里 更新时间:2023-11-01 03:31:27 26 4
gpt4 key购买 nike

我有一个 RootViewController 及其关联的 nibxib 文件。此 nib 在应用程序启动时加载。此 nib 文件包含一个 UIScrollView 在此 ScrollView 中我放置了另一个自定义生成的 nib - newNib.xib 文件。

在这个 newNib.xib 中,我对界面生成器进行了更改以响应 RootViewController,即自定义类 - RootViewController。然后我链接了一些我在 RootViewController 中创建的 UIView 对象。到目前为止一切都很好......

我在 newNib.xib 中定义的 UIViews 上的 RootViewController 中定义了一些 tapGestureRecognisers 但它们不是响应点击事件。像这样点击我在 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 中,我也像这样在 RootViewController 中加载 xib -

[[NSBundle mainBundle] loadNibNamed:@"newNib"owner:self options:nil];

但我仍然没有获得选择器 (messagesBucketTap) 的 tapGesture。我做错了什么?

最佳答案

最可能的原因是您忘记设置点击手势识别器的委托(delegate),例如[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 在 UIView 上为 YES 并且 exclusiveTouchUIScrollView 上为 NO

关于objective-c - UIScrollview 中的 iOS 点击手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7378717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com