在我的应用程序中,我使用叠加样式来呈现帮助信息。点击工具栏中的信息按钮会覆盖UIButton
在我当前主视图的任何视图之上。它绘制带有帮助文本和箭头的图像,指向当前导航栏和工具栏中的各种用户界面元素。
再次点击 Info-button 会处理UIButton
,但如果用户触摸这个覆盖的按钮,我也想摆脱它。除了我的主视图控制器,它是一个UITableViewController
.
我所做的是创建UIButton
并将其添加为UITableView
我的主视图控制器中唯一的视图的子视图。然后我将其设置为处理所有触摸事件:
[[self masterInfoView] addTarget:self action:@selector(toggleMasterInfo:) forControlEvents:UIControlEventAllTouchEvents];
与它现在覆盖的UIButton
表格视图具有相同的大小,并且它会在我点击它时消失,但是如果我做出滚动手势(在其中点击并按住我的手指),按钮不会将此视为触摸事件,相反,底层表视图处理它并滚动其行,同时移动按钮。
在转到 a 之前,UIButton
我使用 aUIView
和各种手势识别器来实现相同的目标,并捕获诸如 之UIResponder
类的事件touchesBegan:withEvent:
,所有这些都具有合理的结果,但并不完美。
完成这项工作并不难,我错过了什么?