iphone - 实现点击任意位置即可取消的最佳方式(App Store 下载按钮)?

标签 iphone objective-c

我有一个 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/

相关文章:

iphone - 如何使用 iPhone CLLocationManager 获取精确坐标

iphone - 如何从我的应用程序中的存折访问通行证?

ios - 在 iOS PayPal SDK 中使用信用卡选项时如何获取交易 ID

iphone - UITextField shouldChangeCharactersInRange 委托(delegate)不起作用

objective-c - 如何在从 XIB 实例化的自定义 View 上设置属性

ios - 为 iOS 中的谷歌地图分配多个标记,并为每个标记启动

java - Java 和 Objective C 的 LateX 渲染

iphone - iOS:使用 UIView 的 'drawRect:' 与其层的委托(delegate) 'drawLayer:inContext:'

iphone - 在模态视图 Controller 中调用 comeFirstResponder 时出现键盘动画问题

iphone - 管理 iphone 项目中的构建目标变量