Le coin arrondi fonctionne très bien sur iOS 12 et inférieur, mais il est cassé sur iOS 13. J'ai créé une classe de contrôle de segment personnalisée.
Code:
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
}
}
J'ai parcouru ce post - Comment changer les couleurs d'un segment dans un UISegmentedControl dans iOS 13? mais je n'ai trouvé aucune solution.
Créer une classe personnalisée pour le segment
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
}
}
}
}}
Peut-être que ce sera facile à utiliser comme ça
@IBOutlet weak var reminderSegmentControl: CustomSegmentedControl!