丸みを帯びた角はiOS 12以下ではうまく機能しますが、iOS 13では機能しません。カスタムのセグメントコントロールクラスを作成しました。
コード:
class SegmentedControl: UISegmentedControl {
override func layoutSubviews() {
super.layoutSubviews()
layer.cornerRadius = self.bounds.size.height / 2.0
layer.borderColor = UIColor(red: 170.0/255.0, green: 170.0/255.0, blue: 170.0/255.0, alpha: 1.0).cgColor
layer.borderWidth = 1.0
layer.masksToBounds = true
clipsToBounds = true
}
}
私はこの投稿を完了しました- iOS 13でUISegmentedControlのセグメントの色を変更する方法? しかし、解決策を得ることができませんでした。
セグメントのカスタムクラスを作成する
class CustomSegmentedControl: UISegmentedControl {
override func layoutSubviews() {
super.layoutSubviews()
layer.cornerRadius = self.bounds.size.height / 2.0
layer.borderColor = use_your_custom_color
layer.borderWidth = 1.0
layer.masksToBounds = true
clipsToBounds = true
for i in 0...subviews.count - 1{
if let subview = subviews[i] as? UIImageView{
if i == self.selectedSegmentIndex {
subview.backgroundColor = use_your_custom_color
}else{
subview.backgroundColor = .white
}
}
}
}}
これはこのように使いやすいでしょう
@IBOutlet weak var reminderSegmentControl: CustomSegmentedControl!