web-dev-qa-db-ja.com

iOS 13でセグメントコントロールのSelectedTintColorが丸みを帯びていない

丸みを帯びた角は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のセグメントの色を変更する方法? しかし、解決策を得ることができませんでした。

スクリーンショット:enter image description here

5
Amir Khan

セグメントのカスタムクラスを作成する

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!
0
amisha.beladiya