【发布时间】:2023-04-02 13:26:01
【问题描述】:
我正在自定义视图控制器的标题视图,以便显示(从左到右):
- 一个与默认标题标签非常相似的 UILabel,
- 信息类型的 UIButton,放置在标签之后固定距离处。
我希望,随着标签水平增长以容纳更长的文本,它会将按钮推向更远的右侧(标签和按钮之间的水平空间保持不变),而整个标题视图会调整自身大小以包含标签和按钮,同时保持在导航栏的中心。
这就是我所做的(界面生成器):
- 将 UINavigationItem 拖入导航栏;
- 将一个 UIView 拖到导航项中,作为标题视图;
- 将标签和按钮拖到标题视图中,定位和调整大小。
-
设置以下约束:
标签 -> 标题视图:
- 领先空间到容器边距
- 在容器中垂直居中
按钮 -> 标题视图:
- 容器边距的尾随空间
- 在容器中垂直居中
(标题视图本身不受约束)
但是,标题视图保持固定大小。如果在运行时我设置的标题比情节提要中设置的占位符长,它会被修剪(“...”):
如果我设置一个较短的,标签和按钮之间会出现额外的空间:
或者,如果我添加以下约束:
标签 -> 按钮: 1.水平间距
...现在按钮完全被标签隐藏了:
我怎样才能让标题视图水平增长(同时保持居中),以便它适合(灵活)标签和(固定)按钮,并保持它们之间的空间固定?
【问题讨论】:
标签: ios storyboard autolayout uinavigationitem