#ios #swift #swiftui #sf-symbols
Вопрос:
У меня есть пользовательский символ SF, который отображается с иерархическим затенением при просмотре в приложении SF Symbols 3, но в iOS с использованием SwiftUI он отображается как монохромный.
Вот символ в приложении SF Symbols 3:
Вот символ, импортированный в качестве шаблона 3.0 в каталоге активов:
Вот код для его визуализации:
Image("custom.figure.steps")
.font(.largeTitle)
.padding(.trailing)
.symbolRenderingMode(.hierarchical)
.foregroundColor(status.statusColor)
Вот как он отображается в симуляторе iOS:
Как мне получить иерархическое затенение?
Комментарии:
1. Вы пробовали отрисовывать его стандартным системным цветом? Мы не можем сказать, что у тебя
status.statusColor
такое.2. Только что попробовал с
Color(uiColor: .systemRed)
иColor(uiColor: .systemGray)
и все еще рендеринг как монохромный.3. Кроме того, вам нужно показать слои, которые вы настроили в символах SF.
4. @Yrb Отредактирован, чтобы включить слои символов.
5. Вы экспортировали его в качестве шаблона 3.0 для импорта в Xcode?
Ответ №1:
Хорошо, я обнаружил свою ошибку. Я экспортировал как шаблон, который не сохранил слои. Когда я экспортировал как символ 3.0, слои были сохранены, и теперь все отображается так, как ожидалось.
Как я поставил диагноз:
- импортировал SVG, который я экспортировал в качестве шаблона, обратно в символы SF и заметил, что там был только один слой
- экспортируется как символ и импортируется в Xcode, отображается как иерархический
Итог: Экспортируйте как символ, а не как шаблон при импорте в Xcode.