首页 > 解决方案 > 在 Swift 上层圆角

问题描述

我试图为我的分段控件使用 layer.cornerRadius 获得一个圆角,但实际上它对我不起作用我想根据框架获得cornerRadius

这是我的代码

func setupView(){
    layer.masksToBounds = true

    // here my corner radius 
    layer.cornerRadius = frame.height / 2.0
    layer.borderColor = UIColor.walkthroughOrangeAccent.cgColor
    layer.borderWidth = 2

    backgroundColor = UIColor.clear

    setupImageView()

    addIndividualItemConstraints(items: imageViewList, mainView: self, padding: 0)

    insertSubview(thumbView, at: 0)

}

标签: swiftcornerradius

解决方案


我怀疑由于布局限制,您没有看到角半径。尝试对分段控件进行子类化并将角半径设置为layoutSubviews

override func layoutSubviews() {
    super.layoutSubviews()
    layer.cornerRadius = frame.height / 2.0
}

或者,如果您在视图控制器中:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    segmentedControl.layer.cornerRadius = segmentedControl.frame.width / 2.0
}

推荐阅读