【问题标题】:Change color of UISwitch appwise应用程序更改 UISwitch 的颜色
【发布时间】:2010-12-15 18:38:45
【问题描述】:

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

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

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

【问题讨论】:

标签: iphone uiswitch


【解决方案1】:

对于现代 iOS XX 版本,请跳过答案,因为它最近的相关性为零。 还在? 在 iOS 3 中。你不能。但是你知道……人们登陆这里是因为排名,而 cmets 包含其他版本和东西,所以……

第五个 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 中,您必须使用一些未记录的功能。曾经有一个关于 here 的链接,但它坏了。如果你这样做了,你的应用可能会因为改变颜色而被拒绝。

从这里开始,这应该足以让您在其他地方找到它:

UISwitch *aSwitch = [[UISwitch alloc] initWithFrame:someRectangle];
[aSwitch setAlternateColors:YES];
//Do something with aSwitch
[aSwitch release];

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

【讨论】:

  • 此解决方案适用于企业应用程序。但是,既然 iOS 5 支持 tint color,这不应该是公认的答案吗?
  • 所以。通常,当 QUESTION 声明它正在使用 iOS 3 时,那么在另一个 iOS 中您能做什么或不能做什么都没有关系。随意再问一次,更好,并将任何适合 iOS 的答案移到那里。或者你知道,更好地搜索。在这一点上,有人通过并在这里回答了错误的问题,将错误的版本关键字放入页面中,这将推动不属于它的搜索。
【解决方案2】:

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

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

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

这提供了比橙色和蓝色更多的选择。

【讨论】:

    【解决方案3】:

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

    产生这个:

    【讨论】:

    • @AnkitSachan:根据社区规则,如果对您有用,您应该将此问题标记为已接受。对我和其他许多人来说,这是一个可行的解决方案。
    • @Fry 你是怎么设置“我”的
    • @kozla13 来自 iOS 7+ 这是设置中的配置。
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      对于 Swift 3:

      var mySwitch : UISwitch = ...
      mySwitch.onTintColor = UIColor.blue
      

      【讨论】:

      • 我认为您的意思是 Swift 3。(由于字符太少,无法编辑)
      【解决方案6】:

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

      UISwitch.appearance().onTintColor = UIColor.brown
      

      在 AppDelegate application:didFinishLaunchingWithOptions: 方法下。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-26
        • 2021-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-06
        • 2015-03-27
        • 2017-01-09
        相关资源
        最近更新 更多