UIView常用方法整理

    - (instancetype)initWithFrame:(CGRect)frame;

自定义UIView可实现上述方法用于初始化。

    - (instancetype)initWithCoder:(NSCoder *)aDecoder;

当UIView从xib或者storyboard中创建之前调用。

    - (void)awakeFromNib;

当UIView从xib或者storyboard中创建时调用,位于initWithCoder之后。

    - (void)layoutSubviews;

默认没有做任何事情,需要重写实现。调用时机如下:
1.但是调用initWiftFrame 并且参数frame不为0的时候会调用
2.调用addsubView时会调用
3.修改了frame的时候调用
4.UIScrollView滚动的时候会调用此方法
5.屏幕旋转的时候会调用
6.子视图修改的时候也会调用父级视图的此方法
7.调用setNeedsLayout+ layoutIfNeeded时会立即调用

    - (void)drawRect;

相当于开启UIView的画板功能,可使用Core Graphic相关API以View为画布进行绘图功能等同于CALayer中的drawInContext:。
调用时机如下:
1.任何设置frame的时候
2.调用sizeToFit时会调用
3.setNeedsDisplay或者setNeedsDisplayInRect:时会调用
4.调用contentMode时会调用
5.以上前提frame!=0

    - (CGSize)sizeThatFits:(CGSize)size;

返回适合的大小。直接调用sizeThatFits时不会引发重绘等其他方法。调用sizeToFit时会调用该方法并重绘。

你可能感兴趣的:(UIView常用方法整理)