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

8
我想在Swift 3中更改UISegmentedControl选定段的。我已经搜索了很多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
  // 

}

}

谢谢!


这里有一篇精美的文章,可以自定义分段控件:)http://smnh.me/customizing-appearance-of-uisegmentedcontrol/ 我相信你需要子类化UISegmentedControl,为不同状态更改背景图像:) - Sandeep Bhandari
你可以参考以下链接:https://dev59.com/f4nca4cB1Zd3GeqP7Cky - Keyur Hirani
@imbeginner_sorry 请检查我的答案并回复。 - KSR
只需将 tint 颜色添加到 UISegmentControl 中,如下所示:segment.tintColor = UIColor.green - soumil
请检查答案并回复! - Mr. Xcoder
6个回答

10

使用以下代码适用于iOS 13及以上版本:

if #available(iOS 13.0, *) {
        segment.selectedSegmentTintColor = .red
} else {
        segment.tintColor = .red
}

9

要以编程方式更改片段的色调颜色,

segment.tintColor = UIColor.yellow


6

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

let titleTextAttributes = [NSForegroundColorAttributeName: Color.blue]
segmentedControl.setTitleTextAttributes(titleTextAttributes, forState: .Selected)

1
这是仅更改所选段落标题的解决方案。 - Ahmadreza

2
在Main.storyboard中,选择segmentControl并更改属性"Tint",如下面的截图所示: enter image description here 如果您是通过编程方式创建segmentedControl,请使用以下代码:
 segment.tintColor = UIColor.red

1

0
请将以下代码添加到您的changeValue函数中:
func changeValue(sender: UISegmentedControl){
for i in 0..<sender.subviews.count {
    if sender.subviews[i].isSelected() {
        var tintcolor = UIColor.red // choose the color you want here
        sender.subviews[i].tintColor = tintcolor
    }
    else {
        sender.subviews[i].tintColor = nil
    }
}
}

这是一个关于UISegmentedControl选中段颜色的问题的Swift版本的已接受答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接