繁体   English   中英

在Xcode 7.3中使用UILabel的UIStackView

[英]UIStackView with UILabels in Xcode 7.3

自从我更新到Xcode 7.3后,我遇到了UIStackView的问题。 如果我创建一个空项目并且只是在UIStackView放置了两个UILabel UIStackView使用默认的拥抱和压缩优先级,它会显示AutoLayout错位信息错误。 它甚至不适用于UIStackView一个(!) UILabel ,因此优先级无关紧要(我认为,可能存在问题)。

我记得在Xcode之前7.3一切都很好。 我分别检查了两台MacBook Pro,这是同样的问题。

有人知道怎么解决吗?

在此输入图像描述 在此输入图像描述

在此输入图像描述 这是Xcode 7.3中出现的一个错误,所以你可以忽略它作为他说的无光泽。

问题

使用UIStackView时,故事板无法计算子视图的内在内容大小

如果你讨厌在故事板中看到警告,你可以修改它,如下所示:

您应该为UIStackView每个子视图执行以下步骤

  • 点按子视图的警告
  • 点按“更新框架”选项
  • 在检查器视图的第四个菜单中选择子视图内在大小的“占位符”

就像那样你不会看到警告,你可以看到是否存在任何歧义

缺点是每次更改子视图时都应该执行此步骤(例如:更改UILabel文本的大小)

希望Apple在下一个版本中修复此错误

忽略警告。 故事板从未完全理解堆栈视图。 约束在运行时是正确的,这一切都很重要。

我有一个不同的技巧来消除警告并使“更新帧”正常工作。

优点:

每次文本更改时都不需要更改占位符值

坏处:

Xcode 8出来时不需要额外的视图

脚步:

  • 将每个UILabel嵌入UIView中。
  • 根据标签约束UIView的大小(匹配前导,尾随,底部和顶部)

看起来UIStackView(在Xcode 7中)无法理解标签的内在内容大小,但是CAN可以理解视图的内在内容大小 - 所以将标签放在视图中并预先设置!

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM