Tôi biết tôi có thể khỏa lấp tất cả bốn góc bằng:Round Top Corners của một UIButton trong Swift
myBtn.layer.cornerRadius = 8
myBtn.layer.masksToBounds = true
Kể từ khi tôi chỉ muốn làm tròn hai, tôi đã làm một số nghiên cứu và tìm thấy this:
extension UIView {
func roundCorners(corners:UIRectCorner, radius: CGFloat) {
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.CGPath
self.layer.mask = mask
}
}
Được gọi là như thế này:
view.roundCorners([.TopLeft , .TopRight], radius: 10)
Tuy nhiên, điều này không hoạt động cho UIButton. Khi tôi chuyển đổi phần mở rộng được cho loại UIButton và vượt qua nó một nút, đầu ra trông như thế này:
Câu hỏi đặt ra là, làm thế nào để thích ứng này để làm việc trên một UIButton?
Hãy xem xét chấp nhận câu trả lời của tôi, vì đó là câu trả lời chính xác nhất cho vấn đề. Khách truy cập trong tương lai của câu hỏi này sẽ không hài lòng chỉ bằng cách nhìn thấy một loạt các mã hoạt động, nhưng không giải thích tại sao nó hoạt động (đó là những gì mà câu trả lời được chấp nhận hiện hành), nhưng bằng cách nhìn thấy _where_ vấn đề là - và được đóng đinh bởi câu trả lời của tôi. –
xem câu trả lời của tôi ở đây: http://stackoverflow.com/a/40222533/2594699 –