zoukankan      html  css  js  c++  java
  • 关于自动布局更新约束方法的总结

    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]

  • 相关阅读:
    linux在线安装jdk,tomcat,Nginx
    SpringAOP的实现方式
    Spring整合Mybatis
    基本sql语句
    解决No module named 'sklearn.cross_validation'
    虚拟机中安装redhat8操作系统
    【Linux命令】tcpdump抓包工具
    【Nodejs】Linux系统搭建Nodejs
    【SSL证书配置】tomcat实现SSL证书访问
    【SSL证书配置】腾讯云申请ssl证书,nginx+tomcat配置ssl证书
  • 原文地址:https://www.cnblogs.com/xdios/p/4506872.html
Copyright © 2011-2022 走看看