我们都知道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一次也不会执行
-
设置view的Frame会触发layoutSubviews,前提是frame的值设置前后发生了变化
-
view的父试图是scrollview,滚动时候会调用layoutSubviews,下面以tableview和cell的关系进行举例演示
网友评论