如何设置UIStackView的cornerRadius?

Wal*_*ica 18 cornerradius ios swift uistackview

我正在更新我的应用程序以使用UIStackViews,现在大多数人应该已经更新到iOS 9.

在旧版本中,我创建了一个由两个UITextField组成的UIView并设置了它的layer.cornerRadius属性.

在新版本中,我创建了一个UIStackView,它包含相同的两个UITextField,而不是UIView.当我尝试设置其layer.cornerRadius属性时,似乎没有任何事情发生.该文档似乎没有任何有用/相关的信息.

ZHZ*_*ZHZ 53

UIStackView只管理其排列视图的位置和大小,cornerRadius没有效果.尝试在stackView下面添加一个自定义视图,并设置它的cornerRadius.

  • 或高于stackview (3认同)

Mur*_*sar 10

您可以使用这样的扩展:

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
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 6

在stackview的超级视图上添加cornerRadius并启用超级视图的clipsToBounds属性,以便子视图被限制在超级视图的范围内。