ios - 在繁忙的 uiview 上处理单击

标签 ios objective-c uiview

所以我有一个 UIVIew,它承载一个 ImageView ,用户可以在其中放大,另一个 ScrollView 响应双击,当然还有滚动,还有一些按钮。 我需要显示一个顶部菜单(有点像照片应用程序),当用户在 View 中的任何地方单击一次时,我会显示/隐藏该菜单),我在实现这个时遇到了麻烦,因为点击可能发生在 imageview 或一个 ScrollView 。

所以我实现了

  - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;

只有当用户点击他触摸 View 的某个地方时,它才会工作并且完成工作,而不是任何 subview !

感谢任何帮助。

最佳答案

假设您的所有 View 都是 self.view 的 subview ,使用 UITapGestureRecongizer 更有意义,然后将其添加到整个 View 。

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)];
[self.view addGestureRecognizer:tap];


- (void)tapped
{
    NSLog(@"Tapped");
}

无论您点击哪个 View ,使用该代码都会注销“Tapped”。然后,您可以更改 tapped 方法来执行您需要它执行的任何操作。

关于ios - 在繁忙的 uiview 上处理单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19755618/

相关文章:

iphone - 状态栏下的 UIView

ios - NSAttributedString 背景色和圆角

ios - 带有导航 Controller 方向的标签栏 Controller ios 6

ios - 如何存储图像并在我的 iOS 界面中引用它?

java - 为不同的设备生成服务器端图像?

iphone - 如何在 iphone sdk 中以字符串形式发送 xml?

ios - UILabel 中的 NSDateFormatter 返回 NULL

ios - iCarousel 未显示且方法未处理

iphone - Xcode ScrollView 慢

ios - 升级到 MT 4.0 后索引 TableViews 不显示