【问题标题】:clipsToBounds on UILabel not workingUILabel 上的 clipsToBounds 不起作用
【发布时间】:2018-04-28 16:05:44
【问题描述】:

我有一个 UILabel,我是这样设置的:

class someSuperclass {    

    var firstLetterLabel = UILabel(frame: CGRect(x: 58, y: 0, width: 81, height: 120))

    func commonInit() {
        firstLetterLabel.font = UIFont(name: "MuseoSans-500", size: 110.0)
        firstLetterLabel.textColor = UIColor.museumRed
        firstLetterLabel.textAlignment = .center
        firstLetterLabel.numberOfLines = 1
        firstLetterLabel.lineBreakMode = .byClipping
        firstLetterLabel.clipsToBounds = false
        addSubview(firstLetterLabel)
    }
}

但它仍然被它的边界限制

因为clipsToBounds 似乎不适用于标签的内容。 如何阻止标签内容被其框架/边界剪切?

【问题讨论】:

  • 字符串不是子视图...
  • “为什么这不能按预期工作?”因为你的预期是错误的。你不明白clipsToBounds 的作用/含义。
  • 我明白了。我以为它会起作用。我怎样才能实现我正在尝试的目标?
  • 我不知道你在“尝试”什么。如果您想查看全部内容,请制作更大的标签(或使文本更小)。

标签: ios swift uilabel


【解决方案1】:

ClipsToBounds 允许子视图或子层溢出视图或防止溢出,但它不会为视图绘制的内容执行此操作,在这种情况下,它是一个 UILabel。您不能越过视图/标签的边界。这就是它被剪裁的原因。这种差异总是剪辑绘制的内容。

可能的解决方案 1)让单个字母标签的固有大小使其不被剪裁。将所有标签放在水平堆栈视图中。

2) 在标签上启用最小字体比例以使其适合。

3) 最后它似乎没有居中绘制。不太清楚为什么,因为您几乎没有看。

【讨论】:

    【解决方案2】:

    您可以改用UIButton,并设置button.userInteractionEnabled = false

    【讨论】:

      猜你喜欢
      • 2018-06-10
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多