Как разрешить пользователю настраивать цвет темы приложения, шрифт текста и размер шрифта текста во время выполнения, например в приложении Telegram? - PullRequest
0 голосов
/ 05 мая 2020

В моем приложении есть экран настроек, который позволяет пользователю изменять цвет приложения, включая цвета оттенков панели навигации и панели вкладок, а также позволяет ему изменять шрифт и размер шрифта для всех текстов в приложении, как в приложении Telegram. проблема в том, что когда пользователь выбирает цвет для списка c цветов, мне нужно что-то вроде перезагрузки или обновления моего приложения, чтобы изменение повлияло на панель вкладок и панель навигации приложения

Я нашел этот вопрос, но он меняет цвет один раз при запуске приложения, но я хочу разрешить пользователю настраивать цвет и шрифт приложения

Изменение цвета панели навигации в Swift

1 Ответ

0 голосов
/ 13 мая 2020

После долгого поиска я нашел ответ, чтобы решить проблему изменения цвета панели навигации и панели вкладок, цвета оттенка и шрифта во время выполнения, когда пользователь выбирает определенный c цвет.

для изменения цвета панели навигации: используйте это для изменения цвета панели навигации для текущего экрана

navigationController?.navigationBar.barTintColor = Color

и для изменения цвета панели навигации во всем приложении

UINavigationBar.appearance().tintColor = Color
UINavigationBar.appearance().barTintColor = Color

и это для изменения шрифта панели навигации для текущего экрана

navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font: AppFont().large]

и это для всего приложения

UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font: AppFont().large]

и это для изменения цвета оттенка панели вкладок

self.tabBarController?.tabBar.tintColor = Color.theme.value

и это для изменения шрифта элементов панели вкладок

let selectedAttrs = [NSAttributedString.Key.font: Font, NSAttributedString.Key.foregroundColor: Color]

    if let items = self.tabBarController?.tabBar.items {
        for item in items {
            item.setTitleTextAttributes(selectedAttrs, for: .selected)
        }
    }

https://gph.is/g/ZOR7bAP

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