我的问题是按钮显示但反应迟钝。甚至是文本领域。在下图中,文本字段1和2以及按钮1和2不会触摸事件。但上面的其他文字领域都有所涉及。点击文本字段显示键盘时会出现问题。但在键盘出现之前,所有文本字段都处于活动状态,按钮响应。
UI层次结构是,
UIScrollView (cyan)
|---UIView (blue)
|--- All other views (text field, buttons)
首先,青色和蓝色视图的大小相同。所有文本字段和按钮视图都在UIView中绘制。所以当键盘出现时我会调整视图大小。虽然早期的UIView和UIScrollview具有相同的区域,但在显示键盘后,蓝色UIView变小,但其子视图(按钮,文本字段)位于其区域之外。它们被显示,但没有接收任何触摸事件。
蓝色视图(UIView)的大小对我来说并不重要。我至少需要按钮和文本字段才能获得触摸事件。如果我禁用UIView的自动调整(蓝色视图),那么它解决了问题。
我的困惑是组件显示但为什么不回应事件?
答案 0 :(得分:1)
您的问题是蓝色视图。如果子视图大于其超级视图,则子视图中的其他部分(不在超级视图上)不响应触摸事件。当键盘出现时,您应该改善调整大小。
答案 1 :(得分:0)
超视图框架是实现触摸事件的依赖因素。您必须使超视图框架成为正确的方式,在您的情况下是蓝色视图。 在超视图框架内,触摸事件可以是正确的。
将剪辑子视图属性设置为蓝色视图的是,然后您可以看到视图框架内的所有内容