我有这样的UIView。
我需要将手指放在那个视图上,然后像弹钢琴那样拖动那些按钮。问题是如果初始触摸点在主视图上并且如果我拖动,则触发主视图的触摸事件并且不触发我的按钮触摸事件。
结果,我把它放了。
[self setUserInteractionEnabled:NO];
问题是它已禁用我的按钮和其他子视图。我想完全忽略触摸事件,主视图中的用户交互,但允许所有这些子视图。我该怎么办?
答案 0 :(得分:0)
您可以为keyboardWillShow
和superView的目标函数集[self setUserInteractionEnabled:NO];
内部设置通知事件,并在keyboardWillHide
通知重新启用它时。要隐藏键盘,您可以使用 GO 按钮或关闭键盘,在调用keyboardWillShow
事件时向屏幕的其余部分添加不可见的UIButton并使用它来辞职第一响应者
希望这有帮助。
答案 1 :(得分:0)
您应该为主视图创建UIView
的子类。它应该覆盖- hitTest:withEvent:
,始终返回密钥的最近视图。
没有继承的替代解决方案是为所有键提供一个不可见的边框,使得它们的视图覆盖整个主视图但从不返回主视图。