【发布时间】:2016-03-18 08:55:40
【问题描述】:
我有这个问题已经很久了,这让我发疯:我有一个带有可以动态更改文本的 UILabel,我有一个 UIImageView 应该充当文本的背景。我希望 UIImageView 自行调整大小以始终适合 UILabel 的文本。
例如,“付费”可以变成“免费”或法语中的“付款”,并且后面的框应始终调整大小。
使用 Storyboard,我尝试在其上添加带有 UILabel 的 UIImageView,并将 UILabel 的约束设置为 UIImageView,但这最终会将 UILabel 的大小调整为 UIImageView 的大小。我无法为 UIImageView 设置固定的宽度或高度,因为它应该适应。
我的第二次尝试是制作一个 UIView,将其重新分类为 UIIimageView,将 UILabel 添加为子视图,使 UIView 调整为 UILabel 的大小并以编程方式添加图像,但又一次没有成功。
这样做的正确方法是什么?
【问题讨论】:
-
第一种方法是否尝试将 Content Hugging Priority 水平和垂直更改为必需?
-
您也可以只使用 UIButton 并将其设置为背景图像并关闭用户交互。
-
@beyowulf 我也尝试过 UIButton:默认图像大于文本,按钮采用图像的大小,并将文本放在中间。它不会根据文本调整大小。对于第一种方法:我不确定如何设置具有拥抱优先级的正确约束?
标签: ios objective-c uiimageview autolayout uilabel