使用自动布局的 UIImage 旁边的 UILabel

Posted

技术标签:

【中文标题】使用自动布局的 UIImage 旁边的 UILabel【英文标题】:UILabel right next to UIImage using autolayout 【发布时间】:2015-12-07 09:07:40 【问题描述】:

如何使用自动布局创建这样的布局?

图标是UIImage,文字是UILabel。

标签文本的宽度可以不同,但​​始终是单行的。如何强制标签随文本水平缩放并且 UIImage 紧靠标签左侧?

我尝试过使用属性文本。我还尝试了将视图作为容器和水平堆栈视图,但未能得到我想要的结果。还有什么其他选择?

【问题讨论】:

您是否使用UIStoryBoard 来应用约束? 是的,我正在故事板上应用约束。 在这种情况下,我将直接使用UIButton。它有一个左侧图像图标和右侧文本。并将其userInteractionEnabled 设置为NO 以禁用任何触摸事件。 应该使用UIStackView Toro 的答案非常适合这种情况,但是,您可以将 uiimage 设置为您喜欢的纵横比,然后选择 label 和 uiimage 并设置相等的高度,那么它们将是相同的无论标签变化有多大,也要为它们设置中间约束ofc 【参考方案1】:

那应该是绝对没问题的——只要把图片放进去,对view的左右两边做布局约束,然后在右边加上label,在图片的右边之间做布局约束和文本的左侧

要限制标签宽度,您可以添加一个从标签右侧到视图右侧的约束,如果您想使用greater-than 符号使标签尽可能小。

编辑

如果整体要绑定到superview的右边框,把两者都放在一个view里,把view对齐到superview的右边框,从label的右边到右边做一个约束风景。当标签调整大小时,视图会相应地调整大小。

【讨论】:

我忘了补充一点,整个东西应该向右对齐。 这确实是重要的信息:-)。【参考方案2】:

我找到了一个解决方案,我在水平堆栈视图中添加了第三个视图作为最左边的元素,并将堆栈视图的分布设置为“等中心”。它实际上与计划布局的其余部分非常吻合(所有元素都被有效使用)。谢谢你们的帮助。

【讨论】:

以上是关于使用自动布局的 UIImage 旁边的 UILabel的主要内容,如果未能解决你的问题,请参考以下文章

自动布局在 x 轴上居中 uilabel 适合内容,uiimage 跟随在左侧

如何使用固定宽度和自动布局正确缩放图像?

自动布局不起作用

UIImage 不应在 UIImageView 内拉伸

如何使用 Masonry 自动布局 UItableviewCell 高度

Swift + Autolayout:旋转 UILabel,保持在 UIView 旁边