自动布局使用的视图属性

有些视图会根据其持有的内容自动调整大小,这称为其intrinsic content size EG按钮的固有内容大小是其标题的大小加上少量的空白。 并非所有视图都具有固有的内容大小。 对于包含视图的视图,固有内容大小可以定义视图的高度,宽度或两者。

假设我们有一个带有文本“ Click Me”的按钮。

我们绝对不希望按钮小于其内部的文本,否则文本将被剪切。 这就是所谓的Compression Resistance Priority

视图的“抗压缩优先级”越高,则视图抵抗增长到大于其固有内容大小的能力就越大。

仍在“单击我”按钮上,如果我们不希望按钮的大小大于其内部内容,如下图所示:

如果我们希望按钮在没有太多填充的情况下拥抱其内容,则必须增加Content Hugging Priority

视图的“内容拥抱优先级”越高,则视图抵抗增长到大于其固有内容大小的能力就越大。

我们可以通过编程方式设置内容拥抱和抗压缩优先级,如下所示:

这两个方法采用两个参数,分别是UILayoutPriorityUILayoutConstraintAxis 。 优先级可以是必填项defaultHighdefaultLowfittingSizeLevel ,其中必填项是最高的,而fittingSizeLevel是最低的。 UILayoutConstraintAxis可以是垂直轴或水平轴。

我将在UIStackview上写另一篇文章,之后我将展示以编程方式编写不同视图的方法。 谢谢阅读。