Используйте раскадровку, чтобы скрыть UIView и дать закругленные углы?
Множество вопросов вроде этого объясняют, как программно создавать маску и предоставлять закругленные углы в UIView.
Есть ли способ сделать все это в Раскадке? Просто спрашивайте, потому что похоже, что создание закругленных углов в Storyboard обеспечивает более четкую демаркацию между представлением и логикой.
Ответы
Ответ 1
Да, я использую это много, но вопрос вроде этого уже много раз ответил.
Но в любом случае в Interface Builder.
Вам нужно добавить атрибуты User Defined Runtime следующим образом:
layer.masksToBounds Boolean YES
layer.cornerRadius Number {View Width/2}
![введите описание изображения здесь]()
и включите
Clips subviews
![введите описание изображения здесь]()
Результаты:
![введите описание изображения здесь]()
Ответ 2
Вы можете сделать это в раскадровке, используя пользовательские свойства. Выберите вид, который вы хотите округлить, и откройте его Identity Inspector. В разделе Определенные пользователем атрибуты Runtime добавьте следующие две записи:
- Путь к ключу:
layer.cornerRadius
, Тип: Number, Value: (любой нужный радиус)
- Путь к ключу:
layer.masksToBounds
, Тип: Логическое значение, значение: отмечено
Возможно, вам придется импортировать QuartzKit
в ваш соответствующий файл класса (если есть), но я клянусь, что я получил его, чтобы работать, не делая этого. Ваши результаты могут отличаться.
EDIT: пример динамического радиуса
extension UIView {
/// The ratio (from 0.0 to 1.0, inclusive) of the view corner radius
/// to its width. For example, a 50% radius would be specified with
/// `cornerRadiusRatio = 0.5`.
@IBDesignable public var cornerRadiusRatio: CGFloat {
get {
return layer.cornerRadius / frame.width
}
set {
// Make sure that it between 0.0 and 1.0. If not, restrict it
// to that range.
let normalizedRatio = max(0.0, min(1.0, newValue))
layer.cornerRadius = frame.width * normalizedRatio
}
}
}
Я проверил, что это работает на детской площадке.
Ответ 3
Выберите вид ![you changed Corner Rediuse , Border Widthe and Border Color also Using StoryBord]()
extension UIView {
@IBInspectable var cornerRadiusV: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
@IBInspectable var borderWidthV: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
@IBInspectable var borderColorV: UIColor? {
get {
return UIColor(cgColor: layer.borderColor!)
}
set {
layer.borderColor = newValue?.cgColor
}
}
}
Ответ 4
Даже после внесения всех изменений в раскадровку ответ Woraphot не работает для меня.
Это сработало для меня:
layer.cornerRadius = 10
layer.borderWidth = 1
layer.borderColor = UIColor.blue.cgColor
Длинный ответ:
Закругленные углы UIView/UIButton и т.д.
customUIView.layer.cornerRadius = 10
Толщина границы
pcustomUIView.layer.borderWidth = 1
Цвет границы
customUIView.layer.borderColor = UIColor.blue.cgColor