2016-11-09 30 views
1

我正在設置uilabel圖層cornerRadius,有時標籤在標籤的某些角/邊緣有額外的線,有沒有辦法避免這種情況?UILabel Swift-3中顯示的額外線條

請在屏幕截圖下方找到。

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 
+0

在屏幕截圖的第二個標籤具有頂部邊緣 –

+0

你的意思是淺黑色的額外的行在白色和灰色之間的邊界上是否在標籤的頂部邊框上排列? (我也在右側看到一些。) –

+0

是的,它不會發生在我添加相同方式的所有uilables上,有時,根本沒有邊框,有時邊框顯示爲不同的邊緣,我試着設置邊框顏色清晰,messageLabel.layer.borderColor = UIColor.clear.cgcolor –

回答

1

如果frame有小數x/y/width/height值這些類型的問題可能發生。

如果您遇到這種情況,試圖把所有的值與這些功能之一:round()ceil()floor()