我试图通过UIButton
中的touchUpInside
来动画这个视图ControlsView
,UIButton
是附加图像中白色正方形内的插入字符。当点击按钮时,一个委托方法被触发,controlsView
被动画化。问题是因为UIButton
在controlsView
的边界之外,所以它没有接收触摸信息。
我已经考虑了很多,并阅读了一些潜在的候选解决方案。例如通过覆盖hitTest:withEvent:
来检测超级视图上的触摸事件。然而,UIButton
实际上是CockPitView
的子视图,CockPitView
是ControlsView
的子视图,ControlsView
是MainView
的子视图。似乎是主视图,是UIButton
真正所在坐标的矩形。那么我是否应该覆盖hitTest
,并将触摸信息传递给CockPitView
,然后让Button
触发其操作回调?
有没有人遇到过这个或类似的问题,并有任何关于如何进行的建议?
的数据
2条答案
按热度按时间kh212irz1#
您应该在自定义视图
CockPitView
中覆盖hitTest
字符串
CockPitView
必须是UIView
的子类knsnq2tg2#
你可能想使用
-pointInside:withEvent:
。在你的button
的超级视图中,也就是ControlsView
,像这样覆盖这个方法:字符串
通过这样做,
ControlsView
声明按钮边界内的点应该像ControlsView
内的点一样对待。