ขณะนี้ฉันกำลังดู UILabel พร้อมคุณสมบัติaddMessageLabel.layer.cornerRadius = 5.0f;
ในอุปกรณ์ที่ติดตั้ง iOS 7.0 จะมีมุมโค้งมน บนอุปกรณ์ที่ติดตั้ง iOS 7.1 จะไม่มีมุมโค้งมน
นี่เป็นเพียงข้อผิดพลาดกับ iOS 7.1 หรือไม่
ขณะนี้ฉันกำลังดู UILabel พร้อมคุณสมบัติaddMessageLabel.layer.cornerRadius = 5.0f;
ในอุปกรณ์ที่ติดตั้ง iOS 7.0 จะมีมุมโค้งมน บนอุปกรณ์ที่ติดตั้ง iOS 7.1 จะไม่มีมุมโค้งมน
นี่เป็นเพียงข้อผิดพลาดกับ iOS 7.1 หรือไม่
คำตอบ:
ตั้งค่าคุณสมบัติclipsToBounds
เป็นจริง
addMessageLabel.clipsToBounds = true
ฉันคิดว่าวิธีที่ดีที่สุดในการกำหนดรัศมีมุมคือ:
และให้แน่ใจว่าได้เลือก "คลิปการสัมภาษณ์ย่อย":
การตรวจสอบ "คลิป subviews" addMessageLabel.clipsToBounds = YES;
เท่ากับรหัส
ลองดังต่อไปนี้
[[addMessageLabel layer] setCornerRadius:5.0f];
[[addMessageLabel layer] setMasksToBounds:YES];
//or
[addMessageLabel setClipsToBounds:YES];
รวดเร็ว
addMessageLable.layer.cornerRadius = 5.0
addMessageLable.layer.masksToBounds = true
//or
addMessageLable.layer.clipsToBounds = true
ปัญหาของฉันแตกต่างกันเล็กน้อย
ในขณะที่ฉันได้ทำ btn.clipsToBounds = true
ฉันไม่ได้ตั้งใจทำ:
btn.layer.cornerRadius = 20
เพราะฉันมีขนาดหน้าจอที่แตกต่างกัน ฉันทำตามคำตอบนี้แล้ว:
override func layoutSubviews() {
seeMoreButton.layer.cornerRadius = seeMoreButton.bounds.size.height / 2
}
super.layoutSubviews()
มันก็ไม่ได้ทำงานเพราะผมลืมที่จะเพิ่ม รหัสที่ถูกต้องคือ:
override func layoutSubviews() {
super.layoutSubviews()
seeMoreButton.layer.cornerRadius = seeMoreButton.bounds.size.height / 2
}
ฉันได้ลองด้านล่างและฉันได้ผลลัพธ์ที่ประสบความสำเร็จ
yourlabelname.layer.cornerRadius = 10.0f;
[yourlabelname setClipsToBounds:YES];
มีอะไรอีกบ้างที่หยุดคุณ
clipsToBounds
จะมีการตั้งค่าเริ่มต้นเป็นYES
ดังนั้นบรรทัด[yourlabelname setClipsToBounds:YES];
ไม่ได้อยู่ในรหัสเดิมของฉัน
//works perfect in Swift 2.0 for a circular or round image
@IBOutlet var theImage: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
//Make sure the width and height are same
self.theImage.layer.cornerRadius = self.theImage.frame.size.width / 2
self.theImage.layer.borderWidth = 2.0
self.theImage.layer.borderColor = UIColor.whiteColor().CGColor
self.theImage.clipsToBounds = true
}
yourlabelname.layer.cornerRadius = yourlabelname.frame.size.width/2;
[yourlabelname setClipsToBounds:YES];
ตรวจสอบให้แน่ใจว่าคุณกำลังตรวจสอบกับเป้าหมายการปรับใช้ที่เหมาะสม
เพิ่มรหัสต่อไปนี้เป็นส่วนขยายสำหรับ UIView
//// Story board Extra Feature for create border radius, border width and border Color
extension UIView {
/// corner radius
@IBInspectable var borderColor: UIColor? {
set {
layer.borderColor = newValue!.cgColor
}
get {
if let color = layer.borderColor {
return UIColor(cgColor: color)
} else {
return nil
}
}
}
@IBInspectable var borderWidth: CGFloat {
set {
layer.borderWidth = newValue
}
get {
return layer.borderWidth
}
}
@IBInspectable var cornerRadius: CGFloat {
set {
layer.cornerRadius = newValue
clipsToBounds = newValue > 0
}
get {
return layer.cornerRadius
}
}
}
หลังจากนั้นคุณจะได้รับคุณสมบัติต่อไปนี้ในเครื่องมือสร้างอินเตอร์เฟส!