Gibt es eine Möglichkeit für UILabel, einen Rahmen um sich selbst zu zeichnen? Dies ist nützlich für mich, die Textplatzierung zu debuggen und die Platzierung und wie groß das Etikett tatsächlich ist zu sehen.
Antworten
Zu viele Anzeigen?Sie können den Rahmen des Etiketts über die zugrunde liegende CALayer-Eigenschaft festlegen:
#import <QuartzCore/QuartzCore.h>
myLabel.layer.borderColor = [UIColor greenColor].CGColor
myLabel.layer.borderWidth = 3.0
Mauersegler 5:
myLabel.layer.borderColor = UIColor.darkGray.cgColor
myLabel.layer.borderWidth = 3.0
Suragch
Punkte
420096
Hier sind einige Dinge, die Sie damit machen können UILabel
und seine Grenzen.
Hier ist der Code für diese Etiketten:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var label3: UILabel!
@IBOutlet weak var label4: UILabel!
@IBOutlet weak var label5: UILabel!
@IBOutlet weak var label6: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// label 1
label1.layer.borderWidth = 1.0
// label 2
label2.layer.borderWidth = 5.0
label2.layer.borderColor = UIColor.blue.cgColor
// label 3
label3.layer.borderWidth = 2.0
label3.layer.cornerRadius = 8
// label 4
label4.backgroundColor = UIColor.cyan
// label 5
label5.backgroundColor = UIColor.red
label5.layer.cornerRadius = 8
label5.layer.masksToBounds = true
// label 6
label6.layer.borderWidth = 2.0
label6.layer.cornerRadius = 8
label6.backgroundColor = UIColor.yellow
label6.layer.masksToBounds = true
}
}
Beachten Sie, dass es in Swift nicht notwendig ist, die QuartzCore
.
Siehe auch
Esqarrouth
Punkte
36621
Vakas
Punkte
5840
Schnell 3/4 mit @IBDesignable
Während fast alle der oben genannten Lösungen gut funktionieren, würde ich vorschlagen, eine @IBDesignable
benutzerdefinierte Klasse für diese.
@IBDesignable
class CustomLabel: UILabel {
/*
// Only override draw() if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func draw(_ rect: CGRect) {
// Drawing code
}
*/
@IBInspectable var borderColor: UIColor = UIColor.white {
didSet {
layer.borderColor = borderColor.cgColor
}
}
@IBInspectable var borderWidth: CGFloat = 2.0 {
didSet {
layer.borderWidth = borderWidth
}
}
@IBInspectable var cornerRadius: CGFloat = 0.0 {
didSet {
layer.cornerRadius = cornerRadius
}
}
}
Sanjay Mali
Punkte
415
UILabel-Eigenschaften borderColor,borderWidth,cornerRadius in Swift 4
@IBOutlet weak var anyLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
anyLabel.layer.borderColor = UIColor.black.cgColor
anyLabel.layer.borderWidth = 2
anyLabel.layer.cornerRadius = 5
anyLabel.layer.masksToBounds = true
}
- See previous answers
- Weitere Antworten anzeigen