【发布时间】:2012-09-14 17:04:56
【问题描述】:
在我的应用程序中,我使用叠加样式来呈现帮助信息。点击工具栏中的信息按钮会在我当前主视图的任何视图顶部覆盖UIButton。它绘制带有帮助文本和箭头的图像,指向当前导航栏和工具栏中的各种用户界面元素。
再次点击信息按钮会释放UIButton,但如果用户触摸这个覆盖的按钮,我也想摆脱它。除了我的主视图控制器 UITableViewController 之外,它工作得很好。
我要做的是创建UIButton 并将其添加为UITableView 的子视图,这是我的主视图控制器中的唯一视图。然后我设置它来处理所有的触摸事件:
[[self masterInfoView] addTarget:self action:@selector(toggleMasterInfo:) forControlEvents:UIControlEventAllTouchEvents];
UIButton 与它现在覆盖的表格视图大小相同,我点击它时它会消失,但如果我做出滚动手势(在其中点击并按住我的手指)按钮看不到这是一个触摸事件,而不是底层表视图处理它并滚动其行,同时移动按钮。
在使用UIButton 之前,我使用UIView 和各种手势识别器来实现相同的目标,并捕获UIResponder 事件,如touchesBegan:withEvent:,所有结果都合理但并不完美。
完成这项工作并没有那么难,我错过了什么?
【问题讨论】:
标签: objective-c ios uitableview uibutton touch