代码之家  ›  专栏  ›  技术社区  ›  Colin Barrett

实现点击任意位置取消的最佳方法(la应用商店下载按钮)?

  •  2
  • Colin Barrett  · 技术社区  · 15 年前

    我曾经想过用一个保护窗口来代替一个视图,然后把它弄得一团糟 hitTest:withEvent: pointInside:forEvent: . 这两个元素的问题在于,元素的超视图不会占据整个屏幕。

    这听起来像是一个完美的用例 exclusiveTouch 听起来像(任何地方的所有触摸事件都会进入该视图),但实际上不是(所有触摸事件) 从这个观点出发 仅转到该视图,而不是同时转到其他视图)。

    思想?

    3 回复  |  直到 15 年前
        1
  •  2
  •   rpetrich    15 年前

    UIWindow 呼叫 -makeKeyAndVisible 然后当你把窗户弄坏了。 UIAlertView 这样做就是为了控制整个屏幕。

        2
  •  1
  •   lemnar    15 年前

    我已经写信了 some code 这相当干净地实现了这种行为。您不需要将元素重新租入guard视图。你只需要 a UIControl subclass that can pass touches through to the element . 你也不需要破坏守卫窗口;你可以把它藏起来。你的 UIApplicationDelegate 能倾听 UIWindowDidBecomeHiddenNotification 寄来的信件 UIWindow 不是主窗口的,然后调用主窗口的 -makeKeyAndVisible 方法

        3
  •  0
  •   Mike A    13 年前

    我提出的一个更简单的解决方案是在您正在创建的store按钮中创建另一个UIButton,然后将其插入下面 self keyWindow 应用程序的名称。然后用那个按钮 UIEventTouchDown 取消选择“存储”按钮并将其自身删除。工作起来很有魅力。