ios - 仅当文本是时才在 UILabel 中显示背景颜色

标签 ios swift uilabel

我已经通过 Storyboard 中 View Controller 的属性选项卡设置了 backgroundColor。但我只想在填充到标签中的文本长度中显示背景颜色,而不是在整个可能的长度中。

我无法附加任何图像,所以这是我想要的:

最佳答案

尝试以下步骤:

  1. 在 Storyboard 中选择 UILabel
  2. 打开“尺寸检查器”。
  3. 在“标签”部分中,确保取消选中“显式”。
  4. 在“约束”列表中,确保没有约束为宽度属性提供值。另外,请删除将 UILabel 的右边缘固定到 UIImageView 的任何约束,因为这将隐式为自动布局提供固定的标签宽度。
  5. UILabelUIImageView 之间添加“等宽度”约束。这可以通过按住 Control 键从标签拖动到 Storyboard 中的 ImageView 并从出现的菜单中选择“等宽度”来实现。
  6. 选择 ImageView 的标签。再次打开“大小检查器”,双击与您刚刚创建的约束相对应的框。在“关系”下拉菜单中,选择“小于或等于”。

这将导致 UILabel 根据在其中绘制的文本的宽度动态更改其宽度。当您设置 backgroundColor 属性时,它仍然会填充标签,仅显示在文本后面。等宽度约束将确保标签的宽度永远不会超过 ImageView 的宽度。

关于ios - 仅当文本是时才在 UILabel 中显示背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034741/

相关文章:

ios - 多个 Split View Controller

ios - UIActivityIndi​​cator 未在中心加载

ios - iOS 上的法语语音识别

swift - Java 中 Swift 字符类上的函数 isSpaceChar 是否有方程?

iOS 7 为我提供了不同的 CGSize 宽度和高度

ios - UIScrollview 内的 UIView 内的 UILabel 上的 UIGestureRecognizer

ios - 着色器在 iOS 上看起来很糟糕但在 Windows 上很好

ios - 行高不会自动更新

ios - 在 swift 4.2 中交换数组值时检测到致命访问冲突

ios - 如何在swift中设置数字上方的第一个,第二个和第三个字母