如何在Swift中更改UISegmentedControl的选定段tintColor

5 iphone uisegmentedcontrol ios swift

我想在Swift 3中更改UISegmentedControl所选段的tintColor。我在Objective-c中搜索了很多答案。
这是我的代码:

class ViewController:UIViewController{

var segment:UISegmentedControl

override func viewDidLoad() {
super.viewDidLoad()

segment.insertSegment(withTitle: "AAA", at: 0, animated: true)
segment.insertSegment(withTitle: "BBB", at: 1, animated: true)
segment.insertSegment(withTitle: "CCC", at: 2, animated: true)

segment.addTarget(self, action: #selector(changeValue), for: .valueChanged)
segment.selectedSegmentIndex = 0

view.addSubview(segment)

}
  func changeValue(sender:AnyObject) {

  //I don't know how to do that change color when segment selected
  // 

}

}
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 9

将下面的代码用于 ios 13 以上,

if #available(iOS 13.0, *) {
        segment.selectedSegmentTintColor = .red
} else {
        segment.tintColor = .red
}
Run Code Online (Sandbox Code Playgroud)


Kos*_*dis 6

例如,如果你想设置标题的颜色,你可以这样做:

let titleTextAttributes = [NSForegroundColorAttributeName: Color.blue]
segmentedControl.setTitleTextAttributes(titleTextAttributes, forState: .Selected)
Run Code Online (Sandbox Code Playgroud)


Sne*_*eha 5

要以编程方式更改细分的颜色,

segment.tintColor = UIColor.yellow