我有一个 UI 元素。当我点击它时,它会动画到中间状态。点击屏幕上其他任何位置应该取消交互,而再次点击 UI 元素则应该继续。
我已经使用防护 View (窗口的 subview 和所有其他 subview 之上)实现了这一点,然后在动画之前将元素重新设置为防护 View ,但我很好奇人们可以想到什么其他方法这个,那个可能更干净。
我想过使用保护窗口而不是 View ,并混淆 hitTest:withEvent:
和 pointInside:forEvent:
。这两个的问题是元素的 super View 不占据整个屏幕。
这听起来像是 exclusiveTouch
听起来的完美用例(任何地方的所有触摸事件都会进入该 View ),但实际上并非如此(所有触摸事件都在该 View 中启动 仅转到该 View ,而不会同时转到其他 View )。
想法?
最佳答案
您可以创建另一个 UIWindow
,调用 -makeKeyAndVisible
,然后在完成后销毁该窗口。 UIAlertView
正是这样做来控制整个屏幕的。
关于iphone - 实现点击任意位置即可取消的最佳方式(App Store 下载按钮)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/645623/