我有一个相对简单的对话框/弹出式UIViewController,表现不正常。我有很多其他的(虽然每个都有一个独特的按钮布局)工作得很好。由于某种原因,我无法弄清楚,这个控制器只接受(大约)绿色阴影区域内的触摸。
请注意,这些颜色都不是实际颜色,只是占位符。同样适用于文本。
点击“搜索...”文本字段不执行任何操作。点击“取消”按钮不会执行任何操作。没有任何UI反应。
如果在绿色区域内(大约)触摸了tableview,它将滚动得很好(有超过100行)。触摸绿色下面的tableview会导致无响应。 “猫”按钮也是如此。大约在上半部分触摸时会发生反应,但下半部分没有任何反应。
我已经把头撞到墙上必要的“几个小时”而且无处可去。
答案 0 :(得分:0)
您的视图控制器视图的一部分似乎与某些“有害”视图/视图重叠。也许这个视图是以编程方式创建的,并且在IB中不可见。您应该从检查视图层次结构开始。将断点放在视图控制器的代码中。某处,您确定已创建所有视图(正常和有害)并在调试区域中键入
你应该收到类似的东西po [self.view recursiveDescription]
现在尝试查找有害的观点。暂时删除一些“正常”视图可能是一个好主意。
答案 1 :(得分:0)
我找到了解决方案。我有一个方法,在启动对话框和父对象的情况下启动对话框控制器(到目前为止,始终是全屏视图控制器)。父级变暗,对话框在屏幕中央启动。
这个没有用,因为我是从现有的对话框中启动它的;我告诉对话框启动器新对话框的父对象是当前对话框,而不是整个屏幕。这意味着新对话框(大于第一个对话框)以正确的大小启动,但只接受“父”对话框区域内的输入,该对话框位于其下方较小的对话框中。
修复:使用当前对话框的父对象(全屏显示)启动新对话框,它可以正常工作。我图像上的绿色区域是用作父对象的对话框的大致大小,这就是为什么输入仅在该区域被接受。