Я разрабатываю приложение, в котором у меня есть кнопка переключателя в настройке, когда переключатель включен, я меняю весь вид приложения на темный режим, а когда выкл, он возвращается к своему первоначальному виду. Теперь, когда я переключаю приложение в темный режим, он меняется идеально, но когда я щелкаю любое текстовое поле и открываю клавиатуру, все мое представление становится темным, ничего не видно, ни текстовое поле, ни кнопка, почему это так? Мой код для создания темных тем и тема по умолчанию это,
struct Theme {
static var backgroundColor:UIColor?
static var buttonTextColor:UIColor?
static var labelBackgroundColor:UIColor?
static var labelTextColor:UIColor?
static var buttonBackgroundColor:UIColor?
static var tableViewBackgroundColor:UIColor?
static var tableViewCellBackgroundColor:UIColor?
static var tabBarBackgroundColor:UIColor?
static var imageBackgroundColor:UIColor?
static public func defaultTheme() {
self.backgroundColor = UIColor.white
self.buttonTextColor = UIColor.black
self.buttonBackgroundColor = UIColor.white
self.labelBackgroundColor = UIColor.white
self.labelTextColor = UIColor.black
self.tableViewBackgroundColor = UIColor.white
self.tableViewCellBackgroundColor = UIColor.white
self.tabBarBackgroundColor = UIColor.white
self.imageBackgroundColor = UIColor.clear
updateDisplay()
}
static public func darkTheme() {
self.backgroundColor = #colorLiteral(red: 0.2605174184, green: 0.2605243921, blue: 0.260520637, alpha: 1)
self.buttonTextColor = UIColor.white
self.buttonBackgroundColor = UIColor.clear
self.labelBackgroundColor = UIColor.clear
self.labelTextColor = UIColor.white
self.tableViewBackgroundColor = UIColor.clear
self.tableViewCellBackgroundColor = UIColor.white
self.tabBarBackgroundColor = #colorLiteral(red: 0, green: 0.1673184633, blue: 0.3710786104, alpha: 1)
self.imageBackgroundColor = UIColor.clear
updateDisplay()
}
static public func updateDisplay() {
let proxyButton = UIButton.appearance()
proxyButton.setTitleColor(Theme.buttonTextColor, for: .normal)
proxyButton.backgroundColor = Theme.buttonBackgroundColor
let proxyView = UIView.appearance()
proxyView.backgroundColor = backgroundColor
let proxyLabel = UILabel.appearance()
proxyLabel.backgroundColor = Theme.labelBackgroundColor
proxyLabel.textColor = Theme.labelTextColor
let proxyTableView = UITableView.appearance()
proxyTableView.backgroundColor = Theme.tableViewBackgroundColor
let proxyTableViewCell = UITableViewCell.appearance()
proxyTableViewCell.backgroundColor = Theme.tableViewCellBackgroundColor
let proxyTabBar = UITabBar.appearance()
proxyTabBar.barTintColor = Theme.tabBarBackgroundColor
let proxyImage = UIImageView.appearance()
proxyImage.backgroundColor = Theme.imageBackgroundColor
}
}
Теперь я просто называю это так: Theme.darkTheme()
в делегате приложения, когда кнопка включения включена. когда темный режим включен, и я щелкаю текстовое поле и открываю клавиатуру, он скрывает вид, подобный этому,
Как я могу это исправить?