在 iOS7 上更改 UISwitch 的 onTintColor?

Posted

技术标签:

【中文标题】在 iOS7 上更改 UISwitch 的 onTintColor?【英文标题】:Changing onTintColor of UISwitch on iOS7? 【发布时间】:2013-11-25 15:09:07 【问题描述】:

默认 onTintColorios7 上是绿色的,但我希望它是另一种颜色。

[myUISwitch setOnTintColor:[UIColor customColor]];

不起作用。如文档所述,on/offImages 对 iOS7 没有影响。为什么它不能工作?如何更改其onTintColor

【问题讨论】:

设置onTintColor 对我有用。您确定拨打电话时myUISwitch 不是nil 【参考方案1】:
UISwitch *switch = [UISwitch alloc] init];
[switch setOnTintColor:[UIColor customColor]];
[myView addSubview:switch];

不起作用。但是

UISwitch *switch = [UISwitch alloc] init];
[myView addSubview:switch];
[switch setOnTintColor:[UIColor customColor]];

有效。除非可见,否则色调颜色不会改变。有人解释一下吗?

【讨论】:

在你调用 alloc 和 init 之后,switch 的视图层次结构在你显示它并调用 viewDidLoad: 之前并没有完全初始化。 呃,太烦人了。我真的很想知道 Apple 有时会发生什么。 如果你想改变它,还有 thumbTintColor 属性。 对于 Swift 这仍然适用。在 awakeFromNib 中为单元格设置它没有效果;你必须在 layoutSubviews 或其他地方设置它添加开关之后

以上是关于在 iOS7 上更改 UISwitch 的 onTintColor?的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell错误ios7

UISwitch改变对象解析目标c

静态 UITableViewCell 中的 UISwitch 生成错误

UISwitch 在值更改 IOS Swift 时崩溃

更改 UISwitch 时如何隐藏部分

Swift - 使用 UISwitch 更改引脚颜色