Ios 当在导航控制器或选项卡栏中时,允许按钮响应触摸而不通过tableview
我有一个Ios 当在导航控制器或选项卡栏中时,允许按钮响应触摸而不通过tableview,ios,uiview,uibutton,Ios,Uiview,Uibutton,我有一个UIView的子类,它从xib加载其内容。我将该视图插入到UIViewController的底部,它就像一个弹出菜单,有点像一个动作表 在视图内部,我有一个视图,一个标题UIImageView,一个背景UIImageView和几个按钮,它们有效地位于背景图像的前面,并连接到UIView子类中的IBActions 使用基本的UIViewController,一切都很好,没有问题。使用视图动画,它可以打开和关闭,只要您触摸按钮,按钮就会按预期启动。我在一个UITableView前弹出了这个窗
UIView
的子类,它从xib
加载其内容。我将该视图插入到UIViewController
的底部,它就像一个弹出菜单,有点像一个动作表
在视图内部,我有一个视图,一个标题UIImageView
,一个背景UIImageView
和几个按钮,它们有效地位于背景图像的前面,并连接到UIView
子类中的IBActions
使用基本的UIViewController
,一切都很好,没有问题。使用视图动画,它可以打开和关闭,只要您触摸按钮,按钮就会按预期启动。我在一个UITableView
前弹出了这个窗口,效果非常好
当我在UINavigationController
或uitabarcontroller
中包含UIViewController
时,当按钮突然停止响应,对UIView的任何触摸开始通过tableview并选择其下方的tableview单元格时,就会出现问题
我尝试了以下方法来“控制触摸”。
-在背景ui视图
上设置exclusiveTouch
=YES,图像会查看按钮,但不会影响触摸。
-已验证在ImageView上禁用了“用户交互”
-尝试使用自定义按钮作为UIView
的背景来捕捉触摸(如SO中所建议),但触摸也会通过该按钮。
-试图覆盖ui视图中的hitTest
,但无效
- 我的按钮和
tableview
是标准的子类
注意:动画前后的视图大小
2013-04-17 07:20:03.975 FivePad[82813:c07]弹出窗口将打开
2013-04-17 07:20:03.975五页[82813:c07]父帧:{{0,0},{320411}
2013-04-17 07:20:03.976动画前的FivePad[82813:c07]菜单帧:{{0381},{32051}
2013-04-17 07:20:04.276 FivePad[82813:c07]弹出窗口未打开
2013-04-17 07:20:04.276动画后的FivePad[82813:c07]菜单帧:{{0,311},{320,51}尝试检查视图的帧-通常这种无响应按钮的问题是因为按钮在视图帧之外(但视图没有剪裁它们,因此它们仍然显示)。感谢您的建议。我应该检查哪一帧?按钮位于UIView弹出窗口的内部。它们位于xib文件中,包含在UIView中,UIView随后作为视图控制器(superview)的子视图插入。检查按钮superview的框架,UIView在打开后弹出。您好@rdelmar,感谢您的帮助。以下是动画前后的视图大小:注意:添加到原始问题以进行格式化。Hi@redelmar。你的提示让我朝着正确的方向看。我发现我在脚本场景中为承载子视图的视图控制器检查了“自动调整子视图大小”。我相信这就是问题所在。