如何更改UISwitch控件后面曲线的颜色?我试着改变了borderColor,但这是与帧绑定的。
这是另一个问题的照片样本。我想切换这张照片中银色曲线的颜色(不是圆形按钮,也不是橙色背景)。

我尝试了这两个属性,但是.layer.borderWidth = 2.0和.layer.cornerRadius = 15 改变了帧而不是曲线
当它打开的时候,我希望曲线是.clear的,当它关闭的时候,我希望它是.red
lazy var switchControl: UISwitch = {
let switchControl = UISwitch()
switchControl.addTarget(self, action: #selector(switchValueDidChange(_:)), for: .valueChanged)
}()
@objc func switchValueDidChange(_ sender: UISwitch) {
if (sender.isOn == true) {
sender.layer.borderColor = UIColor.clear.cgColor // this doesn't work
} else {
sender.layer.borderColor = UIColor.red.cgColor // this doesn't work
}
}发布于 2020-03-17 10:18:17
我相信如果没有SDK的一些黑客技巧,这是不可能的。但是我提议用一个图像来创建你自己的控制。
发布于 2020-03-17 10:44:40
是的,正如iChirag所说,目前还不能使用内置的UISwitch来完成这一任务。
至于为什么不可能,很难说。我猜想这是因为苹果鼓励在他们的人机界面指南中使用有限的调色板。在iOS应用程序中使用颜色的主要目标基本上是传递信息,帮助用户一目了然地区分UI的不同部分,或者引起用户对用户操作的注意。也许他们认为为UISwitch曲线设置自定义颜色超出了这些目的。
尽管如此,如果您需要这样的外观,构建您自己的自定义UISwitch是相当容易的。下面是一个入门教程,希望这会有所帮助:
发布于 2020-03-17 09:46:28
改变UISwitch的淡色
mSwitch.tintColor = offColor//自定义颜色
https://stackoverflow.com/questions/60719722
复制相似问题