Подтвердить что ты не робот

Используйте раскадровку, чтобы скрыть UIView и дать закругленные углы?

Множество вопросов вроде этого объясняют, как программно создавать маску и предоставлять закругленные углы в UIView.

Есть ли способ сделать все это в Раскадке? Просто спрашивайте, потому что похоже, что создание закругленных углов в Storyboard обеспечивает более четкую демаркацию между представлением и логикой.

4b9b3361

Ответ 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