Как я могу установить cornerRadius UIStackView?

Я обновляю свое приложение, чтобы использовать UIStackViews, теперь большинство людей должны обновиться до iOS 9.

В старой версии я сделал UIView, состоящий из двух UITextFields и установил его свойство layer.cornerRadius.

В новой версии я создал UIStackView, состоящий из тех же двух UITextFields, а не UIView. Когда я пытаюсь установить свойство layer.cornerRadius, похоже, ничего не происходит. В документации нет никакой полезной/релевантной информации.

Ответ 1

UIStackView просто управляет положением и размером своих разрешенных видов, cornerRadius не влияет. Попробуйте добавить пользовательский вид ниже stackView и установите для него cornerRadius.

Ответ 2

добавьте cornerRadius в суперпредставление стека и включите свойство clipsToBounds суперпредставления, чтобы подпредставления были ограничены рамками суперпредставления.

Ответ 3

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

extension UIStackView {
    func customize(backgroundColor: UIColor = .clear, radiusSize: CGFloat = 0) {
        let subView = UIView(frame: bounds)
        subView.backgroundColor = backgroundColor
        subView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        insertSubview(subView, at: 0)

        subView.layer.cornerRadius = radiusSize
        subView.layer.masksToBounds = true
        subView.clipsToBounds = true
    }
}