button添加到label上不能响应的问题解决

当尝试在UILabel上添加UIButton时,发现点击无响应。技术讨论中,有人指出UILabel不支持直接添加子按钮。虽然代码实现时UIButton确实成为UILabel的子视图,但因为UILabel不处理触摸事件。解决方案是开启UILabel的父视图的人机交互,以便通过响应链传递点击事件。
摘要由CSDN通过智能技术生成

当我在技术讨论组里面发出这个问题时,有同学就直接质疑:label里面怎么可以加button呢???

一开始我还笑话这位同学呢,UIButton和UILabel都是继承于UIView的,怎么不可以添加!!!

但是,你在storyboard活着xib里面往label拖button怎么拖也拖不进去,系统始终会将button直接放在label的父视图上,所以我也怀疑了。

再但是,你用纯代码写上面的操作是,然后用View Hierarchy查看层级关系,button确实是作为了label的子视图。

但此事,怎么点击button都没响应,群里某大神就说了,人机交互没打开。

我说,默认是打开的啊,而且往刻意打开了,也不行啊。

又某位大神说:button是继承自响应者,所以才能点击,label继承自view,label默认是不响应点击时间的。

真是一语惊醒梦中人,响应链的关系,打开button父视图的人机交互不就可以了吗

上代码吧:

    UILabel *label = [[UILabel alloc] initWithFrame:(CGRect){100, 100, 100, 100}];
//    [label setBackgroundColor:[UIColor cyanColor]]; //设置button的父视图时,父视图的颜色会把全部的子视图覆盖,使子视图看不见(但有时候又行,我也不知道是什么缘故)
    [label.layer setBorderWidth:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值