setNeedsDisplay、setNeedsLayout、layoutIfNeeded、layoutSubviews

setNeedsDisplay / setNeedsDisplayInRect:

通知系统视图需要被重绘,draw方法会被调用。将在下一个绘图周期重新绘制所有无效视图

setNeedsLayout

当想要调整子视图布局的时候,在主线程调用此方法

layoutIfNeeded

使用此方法强制视图立即更新其布局。使用“自动布局”时,布局引擎会根据需要更新视图的位置,以满足约束的更改。用接收此消息的视图作为根视图开始布局视图子树。如果没有待处理的布局更新,则此方法退出而不修改布局或调用任何与布局相关的回调。

layoutSubviews

子类可以根据需要覆盖此方法,以执行其子视图的更精确布局。仅当子视图的自动调整大小和基于约束的行为不能满足需要时,才应覆盖此方法。您可以使用实现直接设置子视图的框架矩形。

您不应该直接调用此方法。如果要强制进行布局更新,可以调用setNeedsLayout方法,则将在下次runloop循环结束的时候进行实际绘制。如果要立即更新视图的布局,请调用layoutIfNeeded方法。

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

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,904评论 1 32
  • 转载地址:http://blog.csdn.net/oqqquzi1234567/article/details/...
    NS西北风阅读 9,131评论 0 4
  • 概述 视图是应用程序中用户界面的基本组成部分,UIView类定义了所有视图的通用行为。视图在其边界矩形内呈现内容,...
    渐z阅读 5,411评论 0 0
  • 原文地址:http://blog.csdn.net/sinat_25544827/article/details/...
    amoy吴彦祖阅读 5,502评论 0 1
  • 自动布局在 OS X 10.7 中被引进,一年后在 iOS 6 中也可以用了。不久在 iOS 7 中的程序将会有望...
    评评分分阅读 4,503评论 0 7

友情链接更多精彩内容