对于具有许多 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/