iOS 13 - UISegmentedControl - 如何更改 selectedSegment 的圆角半径?

Posted

技术标签:

【中文标题】iOS 13 - UISegmentedControl - 如何更改 selectedSegment 的圆角半径?【英文标题】:iOS 13 - UISegmentedControl - How do you change the corner radius of the selectedSegment? 【发布时间】:2019-11-25 03:18:24 【问题描述】:

关于 UISegmentedControl 上的 ios 13 更新:

此自定义 UISegmentedControl 类将分段控件的角变圆。但它不会圆化所选控件的角(仍具有默认角半径)。这使它看起来很奇怪,尤其是当您在分段控件上有边框时:

class SegmentedControl: UISegmentedControl 
      override func layoutSubviews() 
        super.layoutSubviews()

        layer.cornerRadius = 20
        layer.masksToBounds = true
        clipsToBounds = true
     

在你可以只做segmentedControl.layer.cornerRadius = 20 之前它会适用于所有事情,但你不能再这样做了。

有人知道吗?

【问题讨论】:

你说的是哪一端?圆角半径似乎在起作用,你能附上一张关于你的样子的图片吗? 【参考方案1】:

UISegmentControl 不会公开任何更改的内部子视图。您可以使用自定义分段控件,该控件将为自定义提供更多选项。这是 Github 上搜索的第一个建议结果的示例:https://github.com/sasojadrovski/SJFluidSegmentedControl

【讨论】:

以上是关于iOS 13 - UISegmentedControl - 如何更改 selectedSegment 的圆角半径?的主要内容,如果未能解决你的问题,请参考以下文章