0

我的问题是按钮显示但没有响应。甚至是文本字段。在下图中,文本字段 1 和 2 以及按钮 1 和 2 没有获得触摸事件。但是上面的其他文本字段得到了触动。当点击文本字段显示键盘时会出现问题。但是在键盘出现之前,所有的文本字段都处于活动状态并且按钮是响应式的。

UI层次结构是,

UIScrollView (cyan)
|---UIView (blue)
    |---  All other views (text field, buttons) 

起初,青色和蓝色视图大小相同。所有文本字段和按钮视图都在 UIView 中绘制。所以当键盘出现时,我会调整视图的大小。虽然早期的 UIView 和 UIScrollview 具有相同的区域,但在显示键盘后,蓝色的 UIView 变小了,但它的子视图(按钮、文本字段)在其区域之外。它们被显示,但没有接收到触摸事件。

蓝色视图(UIView)的大小对我来说并不重要。我至少需要按钮和文本字段获得触摸事件。如果我禁用 UIView(蓝色视图)的自动调整大小,那么它可以解决问题。

我的困惑是显示了组件,但为什么不响应事件?

在此处输入图像描述

4

2 回答 2

1

您的问题是蓝色视图。如果子视图大于其父视图,则子视图的其他部分(不在父视图上)不会响应触摸事件。当键盘出现时,您应该改进调整大小。

于 2013-11-12T08:41:11.567 回答
0

超级视图框架是实现触摸事件的一个依赖因素。您必须以正确的方式制作超级视图框架,在您的情况下是蓝色视图。在超级视图框架内,触摸事件可能是正确的。

将剪辑子视图属性设置为蓝色视图的“是”,然后您可以看到视图框架内的所有内容

于 2013-11-12T09:18:41.767 回答