• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 自动布局:包含 UILabel + UIButton 的标题 View

[复制链接]
菜鸟教程小白 发表于 2022-12-12 16:28:18 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在自定义 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap