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。你的提示让我朝着正确的方向看。我发现我在脚本场景中为承载子视图的视图控制器检查了“自动调整子视图大小”。我相信这就是问题所在。