2017-10-11 4 views
0

自動夜のテーマをサポートするiOSアプリを作成しています。UITableView夜のテーマに取り組む必要があります。iOS変更後にUITableViewの色をリセットする方法

アプリが夜のテーマを有効にすると、UITableViewの背景色、セクションヘッダの背景色、カスタマイズしたセルの色が変更されます。

私の質問は、アプリが夜のテーマを無効にしたときに、どのようにのUITableViewの背景色と対応セクションヘッダの背景色をリセットすることですか?

夜のテーマを無効にすると、reloadDataメソッドを呼び出そうとしましたが、色は夜のテーマのままです。

私はこれらの色をデフォルトにする必要がありますが、どういうわけか、それを行うための「正しい」方法ではないと感じています。

UITableViewをデフォルトの色にリセットする方法はありますか?前もって感謝します!

答えて

2

まず、夜間モードを無効にすると元の色に戻すことは間違いありません。

ただし、優雅にしたい場合は、ダークモードがオンかオフかを判断し、それに応じて色を返すクロージャ変数を使用してTableViewの色を設定できます。

var colorForTableView: (Bool) -> (UIColor) = { isDarkMode in 

    let defaultColor = UIColor.white 
    let darkColor = UIColor.black 

    return isDarkMode ? darkColor : defaultColor 
} 

使用法:

tableView.backgroundColor = colorForTableView(isDarkMode) 
関連する問題