Как я мог иметь вспомогательный класс, который содержит настройки всего приложения в SwiftUI? - PullRequest
1 голос
/ 29 марта 2020

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

Я учусь разрабатывать с SwiftUI, и этот тип обмена не представляется возможным. Каков наилучший подход к установке определенного типа c шрифта во всем приложении (для всех представлений)?

Например, вместо

Text("Hello World").font(.custom("runda", 20))

Я хотел бы сделать что-то вроде:

StandardText("Hello World")

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

1 Ответ

0 голосов
/ 29 марта 2020

Я бы порекомендовал сделать это с помощью функции, это дает возможность вернуть тип Text, поэтому сделайте доступными все текстовые модификаторы

func StandardText<S>(_ text: S) -> Text where S: StringProtocol {
    Text(text).font(.custom("runda", size: 20))
}

и перегрузку для локализованных ключей

func StandardText(_ key: LocalizedStringKey, tableName: String? = nil, bundle: Bundle? = nil, comment: StaticString? = nil) -> Text {
    Text(key, tableName: tableName, bundle: bundle, comment: comment).font(.custom("runda", size: 20))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...