• 关于自动布局更新约束方法的总结


    1、layoutSubviews

    在iOS5.1和之前的版本,此方法的缺省实现不会做任何事情(实现为空),iOS5.1之后(iOS6开始)的版本,此方法的缺省实现是使用你设置在此view上面的constraints(Autolayout)去决定subviews的position和size。 UIView的子类如果需要对其subviews进行更精确的布局,则可以重写此方法。只有在autoresizingconstraint-based behaviors of subviews不能提供我们想要的布局结果的时候,我们才应该重写此方法。可以在此方法中直接设置subviews的frame。 我们不应该直接调用此方法,而应当用下面两个方法。

    2、setNeedsLayout

    此方法会将view当前的layout设置为无效的,并在下一个upadte cycle里去触发layout更新。

    3、layoutIfNeeded

    使用此方法强制立即进行layout,从当前view开始,此方法会遍历整个view层次(包括superviews)请求layout。因此,调用此方法会强制整个view层次布局。

    基于约束的AutoLayer的方法:

    1、setNeedsUpdateConstraints

    当一个自定义view的某个属性发生改变,并且可能影响到constraint时,需要调用此方法去标记constraints需要在未来的某个点更新,系统然后调用updateConstraints.

    2、needsUpdateConstraints

    constraint-based layout system使用此返回值去决定是否需要调用updateConstraints作为正常布局过程的一部分。

    3、updateConstraintsIfNeeded

    立即触发约束更新,自动更新布局。

    4、updateConstraints

    自定义view应该重写此方法在其中建立constraints. 注意:要在实现在最后调用[super updateConstraints]

  • 相关阅读:
    ASP.NET Cookies的使用
    How to trigger editing of elements inside a reorderlist?
    Not in 的LinQ实现
    .Net中TextBox回车捕捉
    多个TermQuery或一个MultiFieldQueryParser构建BooleanQuery多个域的检索学习实例代码
    ASP.NET的异常处理
    一些有用的API 之 飛信發短信
    C# lock 避免多人同时操作
    一個人性化的“Error 404”,不要錯過!
    SQL索引系列(四)
  • 原文地址:https://www.cnblogs.com/xdios/p/4506872.html
Copyright © 2020-2023  润新知