Как нарисовать границу вокруг UILabel?

Есть ли способ, чтобы UILabel мог нарисовать границу вокруг себя? Это полезно для меня, чтобы отлаживать размещение текста и видеть место размещения и насколько большой наклейка на самом деле.

Вы можете установить границу метки через ее базовое свойство CALayer:

#import  myLabel.layer.borderColor = [UIColor greenColor].CGColor; myLabel.layer.borderWidth = 3.0; 

Вот некоторые вещи, которые вы можете сделать с UILabel и его границами.

введите описание изображения здесь

Вот код для этих меток:

 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 } } 

Обратите внимание, что в Swift нет необходимости импортировать QuartzCore .

Смотрите также

  • Граница, закругленные углы и тень на CALayer
  • Объяснение masksToBounds
  • Использование границы с контуром Безье для слоя
  • Как сделать CALayer на CALayer

Быстрая версия:

 myLabel.layer.borderWidth = 0.5 myLabel.layer.borderColor = UIColor.greenColor().CGColor 

Для Swift 3:

 myLabel.layer.borderWidth = 0.5 myLabel.layer.borderColor = UIColor.green.cgColor 

Вы можете использовать это репо: GSBorderLabel

Это довольно просто:

 GSBorderLabel *myLabel = [[GSBorderLabel alloc] initWithTextColor:aColor andBorderColor:anotherColor andBorderWidth:2]; 

Swift 3/4 с @IBDesignable


Хотя почти все вышеперечисленные решения работают нормально, но я бы предложил для @IBDesignable специальный class @IBDesignable .

 @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 } } } 

Свойства UILabel borderColor, borderWidth, cornerRadius в 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 } 

Решение для Swift 4:

yourLabel.layer.borderColor = UIColor.green.cgColor;

это действительно зависит от того, сколько карт используется в вашем представлении, а иногда просто добавьте UIVIEW, размер которого немного больше, чтобы создать границу. метод быстрее, чем представление

Использование строки NSAttributedString для ваших меток, приписываемыхText, вероятно, лучший выбор. Проверьте этот пример.

  • Как создать изображение из UILabel?
  • Как определить размер шрифта UILabel, когда -adjustsFontSizeToFitWidth установлен на YES?
  • UINavigationBar многострочное название
  • Как изменить расстояние между буквами UILabel / UIFont?
  • UILabel - видимая часть текста
  • Форматирование номера для отображения запятых и / или знака доллара
  • Xcode - обновить текст метки ViewController с другого вида
  • Метод sizeWithFont устарел. boundingRectWithSize возвращает неожиданное значение
  • Как получить текст из n-й строки UILabel?
  • Как добавить gradleиент к тексту UILabel, но не к фону?
  • Обработка события Touch в UILabel и подключение его к IBAction
  • Давайте будем гением компьютера.