我有一个自定义导航栏(控制器顶部的简单UIView),它有两个对象,一个描述屏幕的标签和一个右侧的按钮。
我希望在可能的情况下将标签水平(中心)对齐 。当屏幕尺寸太小时(例如4" iPhone),我希望标签向左移动以允许两个项目完全显示并且文本不会被截断。
这是空间允许时的样子:
小型设备,不理想:
我希望在小型设备上看到它:
有人知道AutoLayout是否可以实现这一点?
答案 0 :(得分:1)
使用自动布局尝试此操作:
同时提供Content Compression Resistance priority
的{{1}}标题。
您的左侧标题应为1000
,优先级为Center Horizontally constraint
。 (给它<1000
)。
在他们和其他约束之间给他们750
。
答案 1 :(得分:0)
您还可以创建可选约束。所有约束的优先级都在1到1000之间。需要优先级为1000的约束。所有其他约束都是可选的。
您可以创建一个优先级为1000的约束,另一个优先级为750.
计算解决方案时,自动布局会尝试从最高到最低的优先级顺序满足所有约束。如果它不能满足可选约束,则跳过该约束并继续执行下一个约束。
即使无法满足可选约束,它仍然可以影响布局。如果在跳过约束后布局中存在任何歧义,系统将选择最接近约束的解决方案。通过这种方式,不满意的可选约束充当了向它们提取视图的力量。
在此处查看Apple文档Constraint Priorities。