美文网首页锻炼吃饭的家伙
优先级布局(UILayoutPriority)

优先级布局(UILayoutPriority)

作者: Mr_C_0420 | 来源:发表于2017-08-09 15:45 被阅读0次

    自动布局

    现在项目使用自动布局的非常多,我说的是纯代码,不包括 xib 和storeyboard, 因为这两个我用的不多.
    有一些第三方的框架,对自动布局支持的很好,但是也会有一些问题,比如布局优先级问题,比如:

    image.png

    很简单的一个页面,但是这里是有问题的,
    文字数和类型的长度是不固定,我们不能直接设置它的宽度,在自动布局的时候,

    给他设置的约束是:右边距离屏幕20px,y 方向和作者名对齐,宽度没有设置.

    作者名称也是不确定的,因此也不能设置宽度,可能你会说可以计算出来,然后设置约束,当然这是一个解决方案,但是不够简单,既然有了自动布局,优先考虑的还是从自动布局方面考虑
    而作者的约束: 左边的约束好说 右边不好确定,宽度不好确定.

    这种情况下,会出现第一个行那种问题,由于作者名称太长,积压了文字数和类型,显示不完全,出现了问题,不用想 一定是约束有问题,其实就是作者和类型都没办法确定宽度 都没有设置完全约束,但是这时候默认显示完全了作者名的约束,我们可以设定优先显示完全文字和类型,这两个的优先级更高,就能解决这个问题.

    设置优先级方法:

    - (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);
    

    第一个参数(priority):通俗来讲,不同的优先级,表示显示的完整性的高低,优先级越高,那么在父控件无法在无越界的情况下的情况下,就会优先先把优先级高的控件显示完整,然后再依次显示优先级低的
    第二个参数(axis):代表在什么方向上进行优先级限制

    项目中代码设置:

    image.png

    这样设置完之后:

    image.png

    字数和类型的优先级别比作者名更高 因此字数和后面的类型可以完整的显示,而作者名就根据之前设置的约束压缩显示了.

    相关文章

      网友评论

        本文标题:优先级布局(UILayoutPriority)

        本文链接:https://www.haomeiwen.com/subject/wccqrxtx.html