【问题标题】:iOS: How to dynamically change the color of UI elementsiOS:如何动态改变 UI 元素的颜色
【发布时间】:2014-07-19 10:19:47
【问题描述】:

我喜欢在我的应用程序中实现夜间或黑暗主题。我已经搜索了互联网,但现有的选项不是我想要的。例如,我想制作自己的“主题课程”:

我有一个 TableView,我想实时更改 TableView 的颜色(类似于 Tweetbot)。我以为我可以这样做。

    #import "theme.h"
    self.tableview.theme = YES;

这应该是我喜欢在我的 ViewControllers 中实现的所有内容,尽可能简单。

然后在 theme.m 中我完成所有其余的工作,每当触发 NSNotificationCenter 消息时获取元素和它们。但问题是我不知道从哪里开始。

有人知道怎么做吗?

【问题讨论】:

    标签: ios objective-c dynamic colors themes


    【解决方案1】:

    我不太确定你在问什么,但如果你想根据你的信息改变颜色,你可以做类似的事情

        historyTable.backgroundColor =  [UIColor colorWithRed:(0/255.0) green:(255/255.0) blue:(255/255.0) alpha:1];
    

    这将设置您的表格的颜色....如果您想让它淡入淡出,可能有一个工具包可以做到这一点,或者您可以执行以下操作:

    for(int i=0; i < 50; i++){
        historyTable.backgroundColor =  [UIColor colorWithRed:(i/255.0) green:(255/255.0) blue:(255/255.0) alpha:1];
    }
    

    这会使 RGB 中的 R 值增加 50/255,可能有点不错,但我还没有测试过。当然,如果你只是想跳到另一种颜色,就用第一行。

    【讨论】:

    • 这只是基本的 UIColor 东西,我想做的是更改所有 UI 元素而不需要重新加载 ViewController。所以基本上我发送一个 NSNotificationCenter 消息,所有订阅该消息的 ViewController 将根据当前主题更改其 UI 元素颜色。描述它的最佳方式是 iOs 上的 Tweetbot 是如何做到的。
    • 还不如传入你想要的颜色然后做 [myElement setColor: myColor];那么你需要的所有元素。
    • 我认为这有点过分,我需要在所有 .m 文件中执行此操作。我敢肯定,这将是一个大混乱!我认为有更好的方法...
    猜你喜欢
    • 2012-03-30
    • 2015-12-30
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 2021-12-22
    相关资源
    最近更新 更多