Я просмотрел атрибуты меток в Xcode 6.3, но я не узнал, как округлить края так же, как вы можете обойти края текстового поля.
Как объединить края UILabel с Swift
Ответ 1
Предполагая, что вы добавили backgroundColor
к своей метке, иначе не было бы возможности определить, есть ли у него ребра, вы можете использовать QuartzCore для округления границ метки.
import QuartzCore
yourLabel.layer.backgroundColor = UIColor.redColor().CGColor
yourLabel.layer.cornerRadius = 5
Ответ 2
Фокус в том, чтобы установить maskToBounds
в значение true. Затем будут видны ваши изменения в cornerRadius
.
label.layer.masksToBounds = true
label.layer.cornerRadius = 5
Ответ 3
Для этого используйте радиус угла слоя надписи,
mylabel.layer.cornerRadius = yourvalue
если вы не хотите показывать тень, добавьте,
mylabel.layer.masksToBounds = true
у меня сработало нормально.
Ответ 4
Вы можете дать cornerRadius
и границы, как это.
Для Свифта 4 и 3
MyLable.layer.masksToBounds = true
MyLable.layer.cornerRadius = 6
MyLable.layer.borderWidth = 2
MyLable.layer.borderColor = UIColor.black.cgColor
Для Objective-C
[MyLable.layer setMasksToBounds:TRUE];
[MyLable.layer setCornerRadius:6];
[MyLable.layer setBorderWidth:2];
[MyLable.layer setBorderColor:[UIColor blackColor].CGColor];
Ответ 5
Способ округления углов любого CALayer
заключается в изменении layer.cornerRadius
. По умолчанию это повлияет только на цвет фона и любую границу слоя, которую вы применили. Вы также можете включить clipsToBounds
для обрезания содержимого пикселя.
Когда представление, такое как UILabel
, рисует себя, оно обращается к содержимому слоя слоя. Вы можете захватить view.layer
для доступа к слою.
Таким образом, вы можете установить радиус угла слоя, чтобы повлиять на фоновый цвет представления. Вы также можете включить clipsToBounds
для обрезки любого содержимого в представлении. Если само представление не слишком близко к краю, оно должно достичь того, чего вы хотите. Это должно быть правильно для меток.
Ответ 6
Выберите свой UILabel
В вашем инспекторе добавьте layer.masksToBounds
и layer.cornerRadius
Меньше кода для обработки в ваших классах 😊
Ответ 7
Прекрасно работает в Xcode 8.1.2 с Swift 3, протестирован в АВГУСТЕ 2017 г.
"cornerRadius" - это свойство ключа для установки закругленных ребер, где, если вы используете один и тот же стиль для всех ярлыков в своем приложении, я бы рекомендовал для метода расширения.
Код:
// extension Class
extension UILabel {
// extension user defined Method
func setRoundEdge() {
let myGreenColor = (UIColor(red: -0.108958, green: 0.714926, blue: 0.758113, alpha: 1.0))
//Width of border
self.layer.borderWidth = 1.0
//How much the edge to be rounded
self.layer.cornerRadius = 5.0
// following properties are optional
//color for border
self.layer.borderColor = myGreenColor.cgColor
//color for text
self.textColor = UIColor.red
// Mask the bound
self.layer.masksToBounds = true
//clip the pixel contents
self.clipsToBounds = true
}
}
Вывод:
Почему метод расширения?
Создайте файл Swift и добавьте следующий код, который имеет метод Extention для класса "UILabel", где этот метод определен пользователем, но будет работать для всех ярлыков в вашем приложении и поможет поддерживать согласованность и чистый код, если вы измените какой-либо стиль в будущем, требуется только в методе расширения.
Ответ 8
Вы создаете расширение для UIView с IBInspectable
extension UIView {
@IBInspectable var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
@IBInspectable var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
@IBInspectable var borderColor: UIColor? {
get {
return UIColor(cgColor: layer.borderColor!)
}
set {
layer.borderColor = newValue?.cgColor
}
}
}
Ответ 9
Swift:
//round shape corner radius set
self.lblName.layer.masksToBounds = true
self.lblName.layer.cornerRadius = self.lblName.bounds.width / 2
//custom shape corner radius set
self.lblName.layer.masksToBounds = true
self.lblName.layer.cornerRadius = 12