首页 > 移动平台 > 详细

ios layoutsubView 何时被调用

时间:2014-08-19 12:28:54      阅读:1365      评论:0      收藏:0      [点我收藏+]

-layoutSubviews方法:这个方法,在UIView中默认没有做任何事情,需要子类进行重写。UIView是一个纯净的视图,里面没有任何子控件,所以不会做什么事情。一般系统自带控件中有子控件的都会重写layoutSubviews方法,因此我们自定义系统自带控件并且重写layoutSubviews必须调用[super layoutSubviews],先布局系统自带子控件的位置和尺寸,才设置我们自己的控件位置和尺寸。

       layoutSubviews在以下情况下会被调用:
1、init初始化不会触发layoutSubviews
   但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,也会触发
2、addSubview会触发layoutSubviews
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小 以及位置的时候也会触发父UIView上的layoutSubviews事件

layoutSubviews方法调用先于drawRect,也就是先布局子视图,在重绘。

- (id)initWithFrame:(CGRect)frame {    

self = [super initWithFrame:frame];  

   if (self) {  

       // Initialization code      

           [self setNeedsLayout];      

   NSLog(@"%s",__func__);     

  }   

  return self; 

} 

- (void)layoutSubviews 

{

     [super layoutSubviews]; 

    NSLog(@"%s",__func__); 

} 

 

- (void)drawRect:(CGRect)rect

{ 

    NSLog(@"%s",__func__);

}

 

ios layoutsubView 何时被调用,布布扣,bubuko.com

ios layoutsubView 何时被调用

原文:http://www.cnblogs.com/llios/p/3921686.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!