我使用了storyboard搭建了界面
界面如图
红色圈出来的是四个UIButton,
每个UIButton里面嵌套了一个UIView,UIView是铺满的,然后UIView里面放的是一个图标和一个Label,
使用addTarget添加事件,结果没有反应。
我将UIButton里面的UIView区域缩小。如图
红色区域是UIView,这里点击是无效的,而蓝色区域是UIButton,除掉红色区域其他地方点击都有效果。
想请教一下这种情况是什么原因,我之前使用纯代码的方式似乎不会出现这种情况啊。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
对于UIIView userInteractionEnabled属性默认是YES;
所以UIView会截获点击事件,点击事件不会向下传播。
对于UIImageView userInteractionEnabled属性默认是NO;
所以UIImageView不会截获点击事件,点击事件会继续向下传播。
你以前可能是在button上添加UIImageView,而现在添加的是UIIView。所以会出现跟以前不一样的效果。
解决办法:将UIView的userInteractionEnabled设置为NO即可。
哥们。。按钮不需要嵌套就可以表达出你这种效果。你要么自定义一个UIControl要么一个UiView上放个图片和标签然后用个没有文字背景默认得图片覆盖。 你这种是uiview的触摸点把下面的覆盖了。而你uiview没得触摸方法。。或者你也可以加个手势到这些view上
你这种写法有个问题,如果加上点中后颜色改变怎么办? uibutton有这种样式,设置边距的,你找找
上面的答案已经回答很好了,我想说的是你这样写逻辑就有问题,如果对Touch事件传导不太熟悉的话,建议可以搜:事件响应者链,会给你很大的帮助。
设置UIlabel和UIImageView的UserIntercace=YES