我在主视图上有UIButton,当点击按钮时,我在整个屏幕上添加一个UIImageView填满屏幕(这是添加在按钮顶部)。
通过单击UIImageView的图像(在UIButton所在的位置),它会启动UIButton点击。但是,由于按钮对用户不可见并被图像覆盖,因此这不是所需的行为。
有没有人发生过类似的事情?任何帮助表示赞赏!
答案 0 :(得分:2)
通常,UIImageViews应该将其userInteractionEnabled属性设置为NO,因此它们不应该响应触摸事件,也不应该在视图链上传递它们(有效阻止对图像模糊的视图执行任何操作) 。我假设你没有将该属性重置为YES,所以听起来你的图像视图没有处理触摸。
可能发生的一种方法是,如果您添加UIImageView的超级视图未覆盖整个屏幕。 UIImageView将溢出超视图的边界并且似乎被绘制在整个屏幕上,但仅响应其超视图区域的触摸。
答案 1 :(得分:0)
这可能更像是一个绑定而非修复,但您可以将UIImageView的状态检查添加到UIButton Click事件中,如果UIImageView当前正在填充屏幕,则退出事件。
答案 2 :(得分:0)
我实际上通过设置框架来实现它:
[[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
而不是:
[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
看起来像applicationFrame而不是边界是问题。