2017-07-18 21 views
0

我有一个自定义导航栏(在控制器的顶部简单的UIView),其具有两个对象,其描述屏幕,并在右侧的按钮标签。自动布局,用于标记水平取向,除非另一个项目侵占

我希望标签水平(中心)对齐尽可能。当屏幕尺寸太小(例如4“iPhone)时,我希望标签移动到左侧以允许两个项目完全显示并且文本不被截断。

这是它应该看起来的样子当空间允许:

This is the way it should look when space allows:

小型设备,并不理想:

Small device, not ideal:

如何,我想它也期待在小型设备上:

How I would like it too look on small devices:

有谁知道这是可能的自动版式?

+0

不导航栏为你做的,无论如何,与标题移动以腾出空间为栏按钮的项目? – jrturton

+0

使用自定义导航栏,即UIView。 – Ryan

+0

OK,我假设你有一个很好的理由:) – jrturton

回答

1

与自动布局试试这个:

给你两个标题:中1000Content Compression Resistance priority

您的左侧标题应该有Center Horizontally constraint,优先级为<1000。 (给它750)。

给他们Horizontal spacing constraint在他们和其他约束之间。

+0

水平间隔限制应该是,而不是一个固定值 – jrturton

+0

我以为我试过> =您的最小间距,但我想不会。奇迹般有效。谢谢! – Ryan

+0

欢迎您:) –

0

您还可以创建可选约束。所有约束的优先级都在1到1000之间。优先级为1000的约束条件是必需的。所有其他限制都是可选的。

您可以创建具有优先级的1000和一个一个约束与750

当计算解决方案,自动布局尝试,以满足从最高到最低的优先顺序所有约束。如果它不能满足可选约束,则跳过该约束并继续到下一个约束。

即使一个可选的约束条件不能满足,它仍然可以影响布局。如果在跳过约束之后布局中存在任何不明确性,系统将选择最接近约束的解决方案。通过这种方式,不满意的可选限制就成为拉动他们观点的力量。

检查这里的苹果文档Constraint Priorities