Проблема с темным режимом в iOS - PullRequest
0 голосов
/ 23 мая 2019

Я разрабатываю приложение, в котором у меня есть кнопка переключателя в настройке, когда переключатель включен, я меняю весь вид приложения на темный режим, а когда выкл, он возвращается к своему первоначальному виду. Теперь, когда я переключаю приложение в темный режим, он меняется идеально, но когда я щелкаю любое текстовое поле и открываю клавиатуру, все мое представление становится темным, ничего не видно, ни текстовое поле, ни кнопка, почему это так? Мой код для создания темных тем и тема по умолчанию это,

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() в делегате приложения, когда кнопка включения включена. когда темный режим включен, и я щелкаю текстовое поле и открываю клавиатуру, он скрывает вид, подобный этому,

enter image description here

Как я могу это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...