UILabel Swift-3中显示的额外线条

时间:2016-11-09 23:14:56

标签: ios uilabel swift3

我正在设置uilabel图层cornerRadius,有时标签在标签的某些角落/边缘有额外的线条,有没有办法避免这种情况?

请在屏幕截图下方找到。

enter image description here

代码:

//Message view
        let messageLabel = UILabel()
        messageLabel.backgroundColor = #someColor
        messageLabel.textColor = #someColor
        messageLabel.font = UIFont.systemFont(ofSize: 14)
        messageLabel.lineBreakMode = NSLineBreakMode.byWordWrapping
        messageLabel.attributedText = attributedString
        messageLabel.numberOfLines = 0
        messageLabel.textAlignment = .center
        messageLabel.shadowColor = UIColor.clear
        messageLabel.layer.cornerRadius = 3.0

        let maskPath = UIBezierPath(roundedRect: messageLabel.bounds,
                                    byRoundingCorners: [.topLeft, .topRight, .bottomRight],
                                    cornerRadii: CGSize(width: 18.0, height: 0.0))
        let maskLayer = CAShapeLayer()
        maskLayer.path = maskPath.cgPath
        messageLabel.layer.mask = maskLayer

1 个答案:

答案 0 :(得分:2)

如果frame具有小数x / y / width / height值,则可能会出现这类问题。

如果是这种情况,请尝试使用以下功能之一对所有值进行舍入:round()ceil()floor()