17

UISwitch在 iOS 3 中使用在我的应用程序中制作开关元素。它的默认颜色设置为蓝色,但我想将其颜色更改为棕色。

如何UISwitch在 iOS 3 中为元素选择不同的颜色?

如何UISwitch在现代 iOS 应用程序(iOS 5+)中为元素选择不同的颜色?

4

6 回答 6

43

最后,在 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];

产生这个:

在此处输入图像描述

于 2011-12-10T10:42:35.310 回答
7

对于 Swift 3 中所有 UISwitch 元素的全局更改,请使用外观代理:

UISwitch.appearance().onTintColor = UIColor.brown

在 AppDelegateapplication:didFinishLaunchingWithOptions:方法下。

于 2017-08-15T12:40:50.047 回答
2

目前,您仅限于 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 版本中,您获得了更多控制权并内置了自定义选项。

于 2012-09-18T13:29:01.427 回答
1

看看我构建的自定义 UISwitch 控件,它允许我更改控件的背景颜色。您可以使用相同的方法非常轻松地更改文本、字体或文本颜色。

http://www.homick.com/posts/custom-uiswitch-control

该代码可在 GitHub 上找到,其中包含一个 PSD,用于构建控件使用的三个不同的 PNG 文件。您可以修改 psd 的内容,以您喜欢的任何格式重新创建 PNG 文件。将它们交换到控件中,然后离开。

这提供了更多的选择,而不仅仅是橙色和蓝色。

于 2009-11-13T14:15:57.723 回答
1

对于斯威夫特 3:

var mySwitch : UISwitch = ...
mySwitch.onTintColor = UIColor.blue
于 2016-12-13T13:54:12.230 回答
-5

对于现代 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];

我不能推荐它。结果不受欢迎。

于 2009-11-12T06:58:42.137 回答