Пользовательская DropShadow панели навигации в пользовательском интерфейсе Swift

Я пытаюсь применить настраиваемую тень к NavigationView с белым фоном.

Я пробовал использовать UINavigationBar.appearance(), но в представлениях SwiftUI это не сработало.

введите здесь описание изображения

Я ищу такую ​​тень с нестандартным цветом и радиусом.

Кто-нибудь сталкивался с какой-либо проблемой в этом или делал это раньше.

Любая помощь будет оценена по достоинству.


person Malav Soni    schedule 01.06.2020    source источник


Ответы (1)


Я не уверен, почему UINavigationBarAppearance у вас не работает.

Я смог сделать это для SwiftUI NavigationViews, используя конфигурации UINavigationBarAppearance (), например:

let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.shadowColor = nil // or a custom tint color
appearance.shadowImage = UIImage(named: "shadow")
UINavigationBar.appearance().standardAppearance = appearance

Вот образец изображения, которое вы можете использовать, чтобы получить что-то похожее на то, что показывает ваше изображение. Чтобы применить собственный оттенок, используйте свойство shadowColor выше. Чтобы получить собственный радиус, вам нужно изменить теневое изображение.

Теневое изображение

Вот пример того, как выглядит SwiftUI NavigationView, когда я это делаю.

Результат

Обратите внимание, что настройки UINavigationBarAppearance должны применяться до создания NavigationView. В противном случае настройки не вступят в силу.

person SlimeBaron    schedule 01.10.2020