我想实现以下目标。
场景:iOS 键盘在用户输入特定文本字段时显示在屏幕上。用户可以点击键盘和文本字段之外的任何地方来关闭键盘(无需激活任何可见的按钮)。此外,用户可以在键盘外拖动并观察一些可滚动视图排列的正常拖动行为。
从概念上讲,我UIView
在大部分屏幕上放置了一个“封面”,其行为如下:
如果用户点击封面,那么我会捕获该点击(以便我可以,例如,关闭键盘)。这很容易通过在
UIView
子类中拦截触摸事件或使用轻击手势识别器来实现。如果用户在封面上拖动,则封面忽略或转发这些触摸;这些被下面的层接收,就像没有盖子一样。
所以:用户应该能够滚动封面下方的内容,但不能点击封面下方的内容。在键盘和文本字段的“外部”轻按应该会关闭键盘(和封面),但不应激活任何东西。
我怎样才能做到这一点?