我有很多小UIButtons
和一个覆盖它们的大型UIButtons
。
小UIControlEventTouchDownRepeat
应该对UIButton
作出反应并调用选择器。大UIButton只需要对UIControlEventTouchDragInside作出反应。然而,大UIControlEventTouchDownRepeat
会消耗所有触摸,{{1}}事件无法到达下方的小按钮。我该如何解决这个问题?
答案 0 :(得分:0)
如果大UIButton
覆盖小按钮而不是简短回答,则不能。事件在响应者链中向上传递,当涉及到视图时,除非事件被处理,否则事件将传递到其超级视图。由于视图只能有一个超级视图,因此无法实现您想要做的事情,至少不容易。
如果您可以反转布局,将大按钮顶部的所有小按钮都可以正常工作。我不确定事件是否会按照您的意愿行事,您只需要测试它。但是,所有未通过小按钮处理的事件都应传递给大按钮。
如果您可以捕捉UIControlEventTouchDownRepeat
触及的点,那么您应该能够找到触摸屏下方的哪个小按钮并以此方式传递事件。您必须向超级视图询问小按钮,这些小按钮可能与大按钮的超级视图相同,用于触摸坐标处的视图以及对该视图执行某些操作。
您可能希望研究另一种解决方案,也许可以创建一个自定义控件来处理您想要的触摸。