Ios 继承许多UIViewController的背景色和其他属性
对于具有许多UIViewController的iOS9+/Swift 3应用程序,继承相同背景颜色和其他常见属性(字体、间距等)的最佳实践方法是什么。最好有一个公共基类吗?或者某种协议?因为大多数可视属性都与特定的UIView和UIView子类(如UILabel、UIButton等)关联,我建议在UIViewController级别处理这一点会迫使视图控制器负责太多特定于其他类的细节 苹果的内置机制是UIAppearance API,用于在各种视图上设置全局视觉属性。有一个 使用UIAppearance的缺点是它不容易适应样式的变化,比如一些按钮是红色的,一些按钮是蓝色的。它基本上是应用程序中某个视图的所有实例的固定默认外观Ios 继承许多UIViewController的背景色和其他属性,ios,swift,cocoa-touch,ios9,uistoryboard,Ios,Swift,Cocoa Touch,Ios9,Uistoryboard,对于具有许多UIViewController的iOS9+/Swift 3应用程序,继承相同背景颜色和其他常见属性(字体、间距等)的最佳实践方法是什么。最好有一个公共基类吗?或者某种协议?因为大多数可视属性都与特定的UIView和UIView子类(如UILabel、UIButton等)关联,我建议在UIViewController级别处理这一点会迫使视图控制器负责太多特定于其他类的细节 苹果的内置机制是UIAppearance API,用于在各种视图上设置全局视觉属性。有一个 使用UIAppear
我个人更喜欢使用专用的样式框架,允许将预定义的样式组合应用于视图。我还创建了,以便于为UIKit组件创建样式,并在故事板中应用和预览它们。因为大多数视觉属性都与特定的UIView和UIView子类(如UILabel、UIButton等)关联,我建议在UIViewController级别处理这一问题会迫使视图控制器负责太多特定于其他类的细节 苹果的内置机制是UIAppearance API,用于在各种视图上设置全局视觉属性。有一个 使用UIAppearance的缺点是它不容易适应样式的变化,比如一些按钮是红色的,一些按钮是蓝色的。它基本上是应用程序中某个视图的所有实例的固定默认外观
我个人更喜欢使用专用的样式框架,允许将预定义的样式组合应用于视图。我还创建了一个,以便于为UIKit组件创建样式,并在故事板中应用和预览它们。您可以有一个包含UI常量的常量文件。只需在所有视图控制器中引用这些变量,如果需要进行更改,其他所有变量也会更改 您还可以对某些内容进行扩展。我通常在UIColor上有一个返回颜色的扩展,我可以在扩展中更改它,它将在其他任何地方更改 e、 g
您可以有一个带有UI常量的常量文件。只需在所有视图控制器中引用这些变量,如果需要进行更改,其他所有变量也会更改 您还可以对某些内容进行扩展。我通常在UIColor上有一个返回颜色的扩展,我可以在扩展中更改它,它将在其他任何地方更改 e、 g
您可以为所需组件创建一个公共基类,例如设置视图的背景色,创建一个子类,并将其名称命名为BackgroundView
class UHBView: UIView {
override func awakeFromNib() {
super.awakeFromNib()
self.backgroundColor = UIColor.blueColor(); //Any color you want
}
}
现在,在Interface Builder中的identity inspector中将该子类设置为任何视图的自定义类
您可以为所需的组件创建一个公共基类,例如设置视图的背景色,创建一个子类,并将其名称命名为BackgroundView
class UHBView: UIView {
override func awakeFromNib() {
super.awakeFromNib()
self.backgroundColor = UIColor.blueColor(); //Any color you want
}
}
现在,在Interface Builder中的identity inspector中将该子类设置为任何视图的自定义类
“如果你的问题可以用整本书来回答,或者有很多有效答案,那么对我们的格式来说可能太宽了”“如果你的问题可以用整本书来回答,或者有很多有效答案,那么对我们的格式来说可能太宽了”这似乎是一个运行时属性,我的印象是协议在Swift中优于继承…但我真的不知道。这似乎是一个运行时属性,我的印象是协议在Swift中优于继承…但我真的不知道。另一种定义可组合和可重用样式的方法,如果您感兴趣:。另一种定义可组合和可重用样式的方法,如果您感兴趣:。