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时会调用该方法并重绘。

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

推荐阅读更多精彩内容