UILabel上的clipsToBounds不起作用

时间:2018-04-28 16:05:45

标签: ios swift uilabel

我有一个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)
    }
}

但它的界限仍被enter image description here

所限制

由于clipsToBounds似乎不适用于标签的内容。 如何阻止标签内容被其框架边界限制?

2 个答案:

答案 0 :(得分:0)

ClipsToBounds允许子视图或子图层溢出视图或阻止它,但它不会对视图绘制的内容执行此操作,在这种情况下它是UILabel。您无法绘制视图/标签的边界。这就是它被削减的原因。这种差异总是剪辑绘制的内容。

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

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

3)最后它似乎没有画中心。不太确定为什么因为你很少看。

答案 1 :(得分:0)

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