使用 UIAppearance 和切换主题

2023-11-21

我正在寻找我的 iOS 应用程序的主题,并且一直在阅读 UIAppearance。我希望用户能够在应用程序内切换多个不同的视觉主题。更改主题将显示在用户界面中。

我想我可以有一个主题文件,它是在 appDelegate.m 中加载的单例。但在那之后我有点困惑如何实现这一点?


将视图添加到视图层次结构后,UIKit 从 UIAppearance 代理设置属性。

In UISS我使用这样的方法:

- (void)reloadAppearance {
    NSArray * windows = [UIApplication sharedApplication].windows;

    for (UIWindow *window in windows) {
        for (UIView *view in window.subviews) {
            [view removeFromSuperview];
            [window addSubview:view];
        }
    }
}

另一个技巧是从主窗口中删除 rootViewController 并再次添加它。虽然我更喜欢第一个解决方案,因为它涵盖了更广泛的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 UIAppearance 和切换主题 的相关文章

随机推荐

  • “public”函数公开其“public/*package*/”参数类型 SolarEdgeException

    我有以下 Java 和 Kotlin 类 package nl friesoft solaredgenotifier class SolarEdgeException extends Exception public SolarEdgeEx
  • 使用 JDBC 检索给定表的所有索引

    我想编写一个 SpringBatch Tasklet 它自动激活或取消激活给定数据库表的所有索引 该代码需要独立于 DBMS 工作 需要 SQL Server Oracle 和 HSQLDB 这是我到目前为止所尝试过的 DatabaseMe
  • 替换字符串中给定索引处的字符? [复制]

    这个问题在这里已经有答案了 字符串没有ReplaceAt 我对如何制作一个像样的函数来满足我的需要有点犹豫 我认为 CPU 成本很高 但字符串大小很小 所以一切都可以 Use a StringBuilder StringBuilder sb
  • 为什么 setInterval 回调只执行一次?

    我制作了这个计数器 但我希望它永远运行 这非常简单 我在这里做错了什么 function timer console log timer window setInterval timer 1000 您使用函数调用而不是函数引用作为 setI
  • 如何将标准 timedelta 字符串转换为 timedelta 对象

    将标准 timedelta 字符串转换为 timedelta 对象的最简单方法是什么 我已经打印了几个 timedelta 对象并得到了这些字符串 1157 days 9 46 39 12 00 01 824952 1 day 23 59
  • Python 套接字接收 - 传入数据包始终具有不同的大小

    我正在使用 SocketServer 模块作为 TCP 服务器 我在这里遇到一些问题recv 函数 因为传入数据包总是具有不同的大小 所以如果我指定recv 1024 我尝试使用更大的值和更小的值 它会在 2 或 3 个请求后卡住 因为数据
  • 如何在asp.net中的代码隐藏中按百分比设置Table/TableRow/TableCell宽度?

    如何在代码后面设置百分比宽度 我能想到的唯一选择是采用父宽度并按百分比计算 TableRow Width Table Width Value 25 100 设置表格行的宽度等于表格宽度的25 然而 最终 如何以百分比设置表格宽度 如果没有表
  • Django 使用元组列表过滤多列

    我有一个包含 2 个字段的简单模型 class Simple Model class Meta index together True a IntField b IntField 我想生成一个 SQL 查询来获取值的元组a b e g se
  • 避免 Java 中的多个 If 语句

    我编写了一个类似这样的方法 但我想这应该进行重构 任何人都可以建议避免使用多个 if 语句的最佳方法吗 private String getMimeType String fileName if fileName null return i
  • R 中从 POSIXct 到 Date 的日期转换

    谁能告诉我为什么 R 给出这样的结果 gt as POSIXct 2013 01 01 08 00 1 2013 01 01 08 00 00 HKT gt as Date as POSIXct 2013 01 01 08 00 1 201
  • 在 IIS 上托管 Angular2 应用程序后,直接 url 不起作用

    我们开发了 Angular2 应用程序 当我们在 Angular cli 下使用 ngserve 运行时 它工作正常 一旦我们将应用程序托管到 IIS 7 5 我们就可以浏览到应用程序的根目录 而不会出现太多问题 并且我们可以从创建的应用程
  • Google 根据 IP 地址限制 FCM 服务,是否还有其他免费的 Android 推送通知提供商?

    我开始使用 FCM For Android 编写一个简单的推送通知应用程序 但我在我的 Android studio 日志中收到了这条消息 signInWithCustomToken com google firebase Firebase
  • 如何去掉标点符号?

    我正在使用来自的标记器Python 中的 NLTK 论坛上已经有很多关于删除标点符号的答案 然而 它们都没有同时解决以下所有问题 连续多个符号 例如 这句话 他说 就是这样 因为逗号后跟引号 所以分词器不会删除句子中的 分词器将给出 He
  • sed 命令在 Mac 上不起作用

    遵循 sed 命令在我的 lion mac 上不起作用 find type f exec sed i s user dashboard user g 我收到这个错误 sed 1 vendor assets javascr invalid c
  • 从 PIL 获取像素值列表

    我正在尝试转换黑白 jpg将图像放入列表中 然后我可以将其调制为音频信号 我已经导入了 PIL 模块并尝试调用内置函数 list im getdata 当我调用它时 python 崩溃了 是否有某种方法可以将图像 始终为 320x240 分
  • MSTest:“指定的文件扩展名‘.dll’不是有效的测试扩展名”

    我在 VS2010 中有一个测试项目 我需要从命令行运行单元测试 在一台机器上 以下场景运行良好 1 通过 MSBuild test project csproj 构建测试 2 通过 MSTest testcontainer test pr
  • 如何判断 pthread_self 是否是进程中的主(第一个)线程?

    背景 我正在开发一个被许多程序使用的日志库 我为每个线程分配一个人类可读的名称 主线程应该为 main 但我希望能够从库内检测该状态 而不需要在每个 main 函数的开头添加代码 另请注意 库代码并不总是首先从主线程输入 这是有点可行的 具
  • 从分部类访问类字段

    我目前处于必须使用部分类的情况 在这个部分类中 我有一些方法需要寻址另一个类中的字段 例如 编辑 对不起 第一类已经声明了partial public partial class myClass private string myStrin
  • 当您没有 IDE 时,如何在项目中添加/引用 .jar 文件

    我是 Java 新手 基本上是 LAMP 开发人员 我得到了这个JAVA API来解析 pst文件并显示所有收件箱消息 我尝试执行给定的 class文件 但它抛出异常 我需要添加 引用一些 jarAPI 提供的文件 我还没有任何 Java
  • 使用 UIAppearance 和切换主题

    我正在寻找我的 iOS 应用程序的主题 并且一直在阅读 UIAppearance 我希望用户能够在应用程序内切换多个不同的视觉主题 更改主题将显示在用户界面中 我想我可以有一个主题文件 它是在 appDelegate m 中加载的单例 但在