经验之谈—没有尺寸的父控件

40 篇文章 0 订阅
  • 在开发中,我们也会经常碰到一个控件的各种奇葩的事情,常常会导致我们有一些误解或者出不来我们想要的结果。比如没有尺寸的父控件,那么这个子控件会怎样?
  • 千万不要因为父控件没有尺寸,子控件就不会显示出来,那是非常错误的一个想法。我们看一下一下代码:
 - (void)viewDidLoad
{
    [super viewDidLoad];
    UIButton *red = [[UIButton alloc] init];
    red.backgroundColor = [UIColor redColor];
    red.frame = CGRectMake(100, 100, 0, 0);
    [red addTarget:self action:@selector(redClick) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:red];

    UIButton *blue = [[UIButton alloc] init];
    blue.backgroundColor = [UIColor blueColor];
    blue.frame = CGRectMake(25, 25, 50, 50);
    [blue addTarget:self action:@selector(blueClick) forControlEvents:UIControlEventTouchUpInside];
    [red addSubview:blue];
}

 - (void)redClick
{
    NSLog(@"点击了红色");
}

 - (void)blueClick
{
    NSLog(@"点击了蓝色");
}
  • 我们运行起来看一下效果:
    控件的显示

  • 首先,当父控件没有尺寸的时候,子控件还是可以出来

  • 但是这个blue的点击事件,就不能响应事件了。
  • 当一个控件的父控件不能响应事件,那么这个控件也是不能响应事件的,这就关联到事件的传递过程。
  • 所以当我们看到一个控件点击没有反应的时候,很有可能是他的父控件不能接受事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值