键盘秀后ios ipad uibutton不负责任

键盘秀后ios ipad uibutton不负责任,ios,ipad,uiscrollview,autoresize,Ios,Ipad,Uiscrollview,Autoresize,我的问题是显示的按钮不负责任。甚至文本字段。在下图中,文本字段1和2以及按钮1和2不获取触摸事件。但上面的其他文本字段得到了触动。当点击文本字段显示键盘时会出现问题。但在键盘出现之前,所有的文本字段都是活动的,按钮都是响应的 UI层次结构是 UIScrollView (cyan) |---UIView (blue) |--- All other views (text field, buttons) 起初,青色和蓝色视图大小相同。所有文本字段和按钮视图都在UIView中绘制。所以当

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

UI层次结构是

UIScrollView (cyan)
|---UIView (blue)
    |---  All other views (text field, buttons) 
起初,青色和蓝色视图大小相同。所有文本字段和按钮视图都在UIView中绘制。所以当键盘出现时,我会调整视图的大小。尽管早期的UIView和UIScrollview具有相同的区域,但在显示键盘后,蓝色的UIView会变小,但其子视图(按钮、文本字段)位于其区域之外。它们会显示,但不会接收触摸事件

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

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


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

超级视图框架是实现触摸事件的一个取决因素。您必须以正确的方式调整超级视图框架,在您的情况下为蓝色视图。 在superview框架内,触摸事件可以正常进行


将clip subview属性设置为蓝色视图的yes(是),然后您可以看到视图框内的所有内容

,因此您的意思是,即使按钮显示在屏幕上,但由于它们位于其容器视图之外,它也不会接收触摸事件?是的,完全正确。您需要改进调整大小逻辑以增加容器视图的大小。