layoutSubviews方法的使用

我们都知道layoutSubviews方法是UIView的扩展类中的一个方法,用于子视图的布局。顾名思义,该方法在自定义view中直接重写即可,在一定条件触发下会调用,那么在都是在哪些条件下会被触发呢?下面将进行一一举例说明。为了演示,先自定义一个简单的view,其代码如下:

//自定义一个简单的view
#import "CustomView.h"
@implementation CustomView
- (void)layoutSubviews {
     NSLog(@"进入方法layoutSubviews");
}
@end

  • addSubview 添加到某个父view上时

    image.png
  • init初始化不会执行,但是用initWithFrame初始化成一个frame不为CGRectZero且addSubview时,会触发两次,不add一次也不会执行

image.png
  • 设置view的Frame会触发layoutSubviews,前提是frame的值设置前后发生了变化

image.png
  • view的父试图是scrollview,滚动时候会调用layoutSubviews,下面以tableview和cell的关系进行举例演示

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容