34 lines
1 KiB
Swift
34 lines
1 KiB
Swift
|
|
extension TabView {
|
||
|
|
@objc override func applyTheme() {
|
||
|
|
if styleName.isEmpty {
|
||
|
|
setStyle(.tabView)
|
||
|
|
}
|
||
|
|
for style in StyleManager.shared.getStyle(styleName)
|
||
|
|
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||
|
|
TabViewRenderer.render(self, style: style)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
class TabViewRenderer {
|
||
|
|
class func render(_ control: TabView, style: Style) {
|
||
|
|
if let backgroundColor = style.backgroundColor {
|
||
|
|
control.backgroundColor = backgroundColor
|
||
|
|
}
|
||
|
|
if let barTintColor = style.barTintColor {
|
||
|
|
control.barTintColor = barTintColor
|
||
|
|
}
|
||
|
|
if let tintColor = style.tintColor {
|
||
|
|
control.tintColor = tintColor
|
||
|
|
}
|
||
|
|
if let font = style.font, let fontColor = style.fontColorHighlighted {
|
||
|
|
control.selectedHeaderTextAttributes = [.foregroundColor: fontColor,
|
||
|
|
.font: font]
|
||
|
|
}
|
||
|
|
if let font = style.font, let fontColor = style.fontColor {
|
||
|
|
control.deselectedHeaderTextAttributes = [.foregroundColor: fontColor,
|
||
|
|
.font: font]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|