ios - UIButton里面嵌套的UIView后无法响应事件
伊谢尔伦
伊谢尔伦 2017-04-17 17:08:40
[iOS讨论组]

我使用了storyboard搭建了界面
界面如图

红色圈出来的是四个UIButton,
每个UIButton里面嵌套了一个UIView,UIView是铺满的,然后UIView里面放的是一个图标和一个Label,
使用addTarget添加事件,结果没有反应。
我将UIButton里面的UIView区域缩小。如图

红色区域是UIView,这里点击是无效的,而蓝色区域是UIButton,除掉红色区域其他地方点击都有效果。

想请教一下这种情况是什么原因,我之前使用纯代码的方式似乎不会出现这种情况啊。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
伊谢尔伦

对于UIIView userInteractionEnabled属性默认是YES;
所以UIView会截获点击事件,点击事件不会向下传播。

对于UIImageView userInteractionEnabled属性默认是NO;
所以UIImageView不会截获点击事件,点击事件会继续向下传播。

你以前可能是在button上添加UIImageView,而现在添加的是UIIView。所以会出现跟以前不一样的效果。

解决办法:将UIView的userInteractionEnabled设置为NO即可。

PHP中文网

哥们。。按钮不需要嵌套就可以表达出你这种效果。你要么自定义一个UIControl要么一个UiView上放个图片和标签然后用个没有文字背景默认得图片覆盖。 你这种是uiview的触摸点把下面的覆盖了。而你uiview没得触摸方法。。或者你也可以加个手势到这些view上

黄舟

你这种写法有个问题,如果加上点中后颜色改变怎么办? uibutton有这种样式,设置边距的,你找找

阿神

上面的答案已经回答很好了,我想说的是你这样写逻辑就有问题,如果对Touch事件传导不太熟悉的话,建议可以搜:事件响应者链,会给你很大的帮助。

PHP中文网

设置UIlabel和UIImageView的UserIntercace=YES

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号