OStack程序员社区-中国程序员成长平台

标题: ios - 自动布局:包含 UILabel + UIButton 的标题 View [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 16:28
标题: ios - 自动布局:包含 UILabel + UIButton 的标题 View

我正在自定义 View Controller 的标题 View ,以便显示(从左到右):

  1. 一个与默认标题标签非常相似的 UILabel,
  2. 一个信息类型的 UIButton,放置在标签后面固定距离处。

我希望,随着标签水平增长以容纳更长的文本,它会将按钮推向更远的右侧(标签和按钮之间的水平空间保持不变),而整个标题 View 会自行调整大小以包含标签和按钮,同时保持在导航栏的中心。

这就是我所做的(界面生成器):

  1. 将 UINavigationItem 拖入导航栏;
  2. 将一个 UIView 拖到导航项中,作为标题 View ;
  3. 将标签和按钮拖入标题 View 、定位和调整大小。
  4. 设置以下约束:

    标签 -> 标题 View :

    1. 领先于容器边距
    2. 在容器中垂直居中

    按钮 -> 标题 View :

    1. 容器边距的尾随空间
    2. 在容器中垂直居中

(标题 View 本身不受约束)

但是,标题 View 保持固定大小。如果在运行时我设置的标题比 Storyboard 中设置的占位符长,它会被修剪(“...”):

enter image description here

如果我设置一个较短的,标签和按钮之间会出现额外的空间:

enter image description here

或者,如果我添加以下约束:

标签 -> 按钮: 1.水平间距

...现在按钮完全被标签隐藏了:

enter image description here

我怎样才能让标题 View 水平增长(同时保持居中),以便它适合(灵活)标签和(固定)按钮,并保持它们之间的空间固定?



Best Answer-推荐答案


导航项未设置为直接处理此问题。您需要使用约束来设置标题 View 的框架,然后将其添加到 nab 项。因此,每次更改文本时,您都需要通过删除 View 、调整其大小然后再次添加它来做一些小 Action 。关键API是systemLayoutSizeFittingSize

关于ios - 自动布局:包含 UILabel + UIButton 的标题 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32901644/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4