使用自动布局的 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 跟随在左侧