码迷,mamicode.com
首页 > 其他好文 > 详细

关于layoutSubviews方法何时使用的总结

时间:2015-07-17 18:46:41      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:layout   frame   

今天在自定义button时,遇到了关于layoutSubviews方法调用的问题,由于使用的是sizeTofit自适应的方法,所以初始化时并没有给按钮设置frame,,只是在layout方法里改变了titleLable和imageView的位置,按钮却能正常显示,就想到什么时候走了layout方法。

- (void)layoutSubviews{

   [super layoutSubviews];
    NSLog(@"layout1");
    self.backgroundColor = [UIColor redColor];
   self.titleLabel.frame =    CGRectMake(self.imageView.frame.origin.x, self.titleLabel.frame.origin.y, self.titleLabel.frame.size.width, self.titleLabel.frame.size.height);

    self.imageView.frame = CGRectMake(CGRectGetMaxX(self.titleLabel.frame), self.imageView.frame.origin.y, self.imageView.frame.size.width, self.imageView.frame.size.height);
}
- (void)setTitle:(NSString *)title forState:(UIControlState)state{

    [super setTitle:title forState:state];
    NSLog(@"settitle");
    [self sizeToFit];
}

- (void)setImage:(UIImage *)image forState:(UIControlState)state{
    NSLog(@"setimage");
    [super setImage:image forState:state];
    [self sizeToFit];
}
  • 何时使用layout
1.init方法不会触发
2.改变frame大小时会触发layoutSubviews方法
3.addSubview会触发layoutSubviews

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于layoutSubviews方法何时使用的总结

标签:layout   frame   

原文地址:http://blog.csdn.net/charles910921/article/details/46930685

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!