2016-05-21 5 views
1

Ich änderte zusätzliche Polsterungen auf diese UILabels.I haben will die intrinsische Inhaltsgröße mit dem folgenden Code:Polsterung Intrinsic Inhalt Größe hinzufügen nicht in UILabel Arbeits

class CustomLabelWithPadding:UILabel{ 


    override func intrinsicContentSize() -> CGSize { 
     let contentSize = super.intrinsicContentSize() 
     return CGSize(width: contentSize.width + 50, height: contentSize.height) 
    } 

} 

jedoch das Etikett nicht padding als ist mit enter image description here

let label = CustomLabelWithPadding() 
label.text = "Hello World" 
label.font = UIFont(name: "Helvetica", size: 20) 
label.sizeToFit() 
label.layer.backgroundColor = UIColor(red: 0.067, green: 0.773, blue: 0.525, alpha: 1.00).CGColor 
label.textAlignment = NSTextAlignment.Center 
label.textColor = UIColor.whiteColor() 
label.frame.origin.x = 160 
label.frame.origin.y = 50 
self.view.addSubview(label) 

Antwort

0

Dieser hat den Job :)

class CustomLabelWithPadding:UILabel{ 

    var edgeInsets:UIEdgeInsets = UIEdgeInsetsZero 

    override func textRectForBounds(bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect { 
     var rect = super.textRectForBounds(UIEdgeInsetsInsetRect(bounds, edgeInsets), limitedToNumberOfLines: numberOfLines) 

     rect.size.width += 10; 
     return rect 
    } 

    override func drawTextInRect(rect: CGRect) { 
     self.clipsToBounds = true 
     self.layer.cornerRadius = 3 
     super.drawTextInRect(UIEdgeInsetsInsetRect(rect, edgeInsets)) 
    } 
}