zoukankan      html  css  js  c++  java
  • 实现ios屏幕的横竖屏自适应

    整理总结中。。。

    刷新

    可以通过

    -setNeedsUpdateConstraints

    -layoutIfNeeded

    两个方法来刷新约束的改变,使UIView重新布局,

    和CoreGraphic的-setNeedsDisplay一套东西是一样的

    添加约束容易出现的错误

    因为涉及约束问题,因此约束模型下的所有可能出现的问题这里都会出现,具体来说包括两种:

    • Ambiguous Layout 布局不能确定
    • Unsatisfiable Constraints 无法满足约束

    布局不能确定指的是给出的约束条件无法唯一确定一种布局,也即约束条件不足,无法得到唯一的布局结果。这种情况一般添加一些必要的约束或者调整优先级可以解决。无法满足约束的问题来源是有约束条件互相冲突,因此无法同时满足,需要删掉一些约束。两种错误在出现时均会导致布局的不稳定和错误,Ambiguous可以被容忍并且选择一种可行布局呈现在UI上,Unsatisfiable的话会无法得到UI布局并报错。 对于不能确定的布局,可以通过调试时暂停程序,在debugger中输入

    • po [[UIWindow keyWindow] _autolayoutTrace]

    来检查是否存在Ambiguous Layout以及存在的位置,来帮助添加条件。另外还有一些检查方法,来查看view的约束和约束状态:

    • [view constraintsAffectingLayoutForOrientation/Axis: NSLayoutConstraintOrientationHorizontal/Vertical]
    • [view hasAmbiguousLayout]
      • [view exerciseAmbiguityInLayout]
  • 相关阅读:
    DFS总结
    cmake-make-gcc(g++)
    std::function
    basic_string定义的相关string函数
    欧拉路径和欧拉回路
    正则表达式
    C++ Data Types
    关于uniapp的插槽
    关于微信H5 分享配置
    h5请求的时候总是会跨域
  • 原文地址:https://www.cnblogs.com/guaishushu/p/4989986.html
Copyright © 2011-2022 走看看