drawRect layoutSubviews

文/松果果(简书作者)
原文链接:http://www.jianshu.com/p/438bcf8e3e53
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

-(void)setNeedsLayout:

在receiver标上一个需要被重新布局的标记,在系统runloop的下一个周期自动调用layoutSubviews

  • (void)layoutIfNeeded:

方法如其名,UIKit会判断该receiver是否需要layout.根据Apple官方文档,layoutIfNeeded方法应该是这样的layoutIfNeeded遍历的不是superview链,应该是subviews链。

  • (void)layoutSubviews:
    这是核心函数,最终的目的就是调用该函数,开发者不能调用直接调用该函数,但可以重写该函数,来加入些自己的代码。该函数只会进行位置,视图大小的数字计算,并不会引起屏幕的绘制。
  • (void)setNeedsDisplay:
    在receiver标上一个需要被重新绘图的标记,在下一个draw周期自动重绘,iphone device的刷新频率是60hz,也就是1/60秒后重绘;

  • (void)setNeedsDisplayInRect:(CGRect)rect:
    不但设置了flag,而且详细规定了需要刷新的区域。

  • (void)drawRect:(CGRect)rect:
    这是核心函数,最终导致显示到屏幕上。开发人员不可以直接调用该函数,只能重写该函数,额外做一些我们想做的事。是对receiver的重绘,能获得context。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容