ios - 继承许多 UIViewController 的背景颜色和其他属性

标签 ios swift cocoa-touch ios9 uistoryboard

对于具有许多 UIViewController 的 iOS9+/Swift 3 应用程序,继承相同背景颜色和其他常见属性(字体、间距等)的最佳实践方法是什么。最好有一个共同的基类吗?或者某种协议(protocol)?

最佳答案

因为大多数视觉属性都与特定的 UIView 和 UIView 子类(如 UILabel、UIButton 等)相关联,所以我建议在 UIViewController 级别处理它会迫使 View Controller 负责太多特定于其他类。

Apple 在各种 View 上设置全局视觉属性的内置机制是 UIAppearance API。有一个 good overview of that on NSHipster

使用 UIAppearance 的缺点是不容易适应样式的变化,比如一些按钮是红色的,一些按钮是蓝色的。它基本上是应用程序中特定 View 的所有实例的固定默认外观。

我个人更喜欢使用专用的样式框架,它允许将预定义样式组合应用到 View 。我 have written about this还创建了一个 framework便于为 UIKit 组件创建样式并在 Storyboard中应用和预览它们。

关于ios - 继承许多 UIViewController 的背景颜色和其他属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39258647/

相关文章:

ios - 更改自动布局常量不会更新其框架

ios - 在 UITableView 中点击的行下方插入新行

iphone - 如何在同一 View 中打开相机

swift - 解析... query.getObjectInBackgroundWithId

objective-c - AppDelegate.m 文件中的函数未从 MainViewController.m 文件调用

ios - 批量获取 Realm

ios - UICollectionView 只返回一个部分?

iphone - iOS - 强制键盘以横向显示

ios - 将照片保存到照片库中的文件夹

iphone - dateWithTimeIntervalSince1970 在创建事件时不起作用