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]
  • 相关阅读:
    数据结构和算法学习笔记七:图的搜索
    数据结构和算法学习笔记六:图的相关实现
    Unity常用的3D数学知识
    Unity计时器--简版
    基于前缀树的红点系统
    数据结构和算法学习笔记五:图的基本概念
    C内存管理
    如何解决KEIL中文乱码问题
    C语言结构体变量作为函数形参
    C的结构体
  • 原文地址:https://www.cnblogs.com/guaishushu/p/4989986.html
Copyright © 2011-2022 走看看