在提出问题之前,我已经搜索了stackoverflow,找到了相关的帖子:
change segmentControl border color
但我们可以看到它是objective-c
语言。
那么我们如何更改UISegmentControl
中的swift
的borderColor?
答案 0 :(得分:0)
你真的必须将代码转换为swift ...
let customSegmentedControl = UISegmentedControl.appearance()
customSegmentedControl.setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.red], for: UIControlState.normal)
但我相信你发布的代码会改变字母的实际颜色,而不是外面的颜色。外面的颜色叫做“色调”,它改变如下:
customSegmentedControl.tintColor = UIColor.blue
编辑:仅用于更改边框
由于SegmentedControl中的每个细分都是实际的UIView,您可以直接访问它们,并根据您的需求对其进行自定义,如this answer。
或者你可以设置我认为可以设置为你需要的颜色的“背景图像”。 (虽然上面的方法似乎不太复杂)
答案 1 :(得分:0)
我们可以设置背景图像以达到效果。
let customSegmentedControl = UISegmentedControl.appearance()
//customSegmentedControl.setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.red], for: UIControlState.normal)
customSegmentedControl.setBackgroundImage(UIImage.init(named: "ni2.png"), for: .normal, barMetrics: .default)
customSegmentedControl.setBackgroundImage(UIImage.init(named: "ni.png"), for: .selected, barMetrics: .default)
答案 2 :(得分:0)
更简单的方法:
segmentControl.layer.borderWidth = 1.0
segmentControl.layer.cornerRadius = 5.0
segmentControl.layer.borderColor = UIColor.red.cgColor
segmentControl.layer.masksToBounds = true
答案 3 :(得分:0)
添加插座
@IBOutlet weak var customSegment: UISegmentedControl!
然后在您的 viewDidload 方法中
customSegment.layer.borderWidth = 1.0
customSegment.layer.cornerRadius = 5.0
customSegment.layer.borderColor = UIColor.red.cgColor
customSegment.layer.masksToBounds = true
答案 4 :(得分:-1)
self.segementControl.layer.borderWidth = 0.3
self.segementControl.layer.cornerRadius = 3.0
self.segementControl.layer.borderColor = UIColor.orange.cgColor