我UISwitch
在 iOS 3 中使用在我的应用程序中制作开关元素。它的默认颜色设置为蓝色,但我想将其颜色更改为棕色。
如何UISwitch
在 iOS 3 中为元素选择不同的颜色?
如何UISwitch
在现代 iOS 应用程序(iOS 5+)中为元素选择不同的颜色?
最后,在 iOS 5 中,您可以使用属性更改开关的颜色onTintColor
。
UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
s.on = YES;
s.onTintColor = [UIColor redColor];
[self.view addSubview:s];
[s release];
产生这个:
对于 Swift 3 中所有 UISwitch 元素的全局更改,请使用外观代理:
UISwitch.appearance().onTintColor = UIColor.brown
在 AppDelegateapplication:didFinishLaunchingWithOptions:
方法下。
目前,您仅限于 UISwitch 的 On/Off 或 0/1 文本值。您可以使用 tint 自定义颜色。对于进一步的定制,我会建议像上面发布的内容一样使用完全定制的解决方案
前任。[mySwitch setOnTintColor:[UIColor colorWithRed:0 green:175.0/255.0 blue:176.0/255.0 alpha:1.0]];
来源:http ://www.raywenderlich.com/4344/user-interface-customization-in-ios-5
编辑:对于 iOS3,您仅限于自定义实现,我建议将两个按钮与自定义图像交换。在后来的 iOS 版本中,您获得了更多控制权并内置了自定义选项。
看看我构建的自定义 UISwitch 控件,它允许我更改控件的背景颜色。您可以使用相同的方法非常轻松地更改文本、字体或文本颜色。
http://www.homick.com/posts/custom-uiswitch-control
该代码可在 GitHub 上找到,其中包含一个 PSD,用于构建控件使用的三个不同的 PNG 文件。您可以修改 psd 的内容,以您喜欢的任何格式重新创建 PNG 文件。将它们交换到控件中,然后离开。
这提供了更多的选择,而不仅仅是橙色和蓝色。
对于斯威夫特 3:
var mySwitch : UISwitch = ...
mySwitch.onTintColor = UIColor.blue
对于现代 iOS XX 版本,请跳过答案,因为它最近的相关性为零。还在?在 iOS 3 中。你不能。但是你知道......人们登陆这里是因为排名,以及包含其他版本和内容的评论......</p>
iOS 的第五个版本现在允许使用文档化的方式来执行此操作:使用属性onTintColor
.
UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
s.on = YES;
s.onTintColor = [UIColor redColor];
[self.view addSubview:s];
[s release];
生产这个
编辑:我不知道为什么有人会通过并回滚答案以仅将其限制在问题上,而不对所有答案都做同样的事情。
编辑更多: 在 iOS 3 中,您必须使用一些未记录的功能。曾经有一个关于这里的链接,但它坏了。如果你这样做了,你的应用程序可能会因为改变颜色而被拒绝。
它从这个开始,这应该足以让你在其他地方找到它:
UISwitch *aSwitch = [[UISwitch alloc] initWithFrame:someRectangle];
[aSwitch setAlternateColors:YES];
//Do something with aSwitch
[aSwitch release];
我不能推荐它。结果不受欢迎。