ios layoutsubView 何时被调用

-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 何时被调用,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。