Как убрать фон панели навигации с появлением в iOS 13? - PullRequest
0 голосов
/ 26 октября 2019

Я пытался удалить фон панели навигации в iOS 13 в операторах if с #available. Я знаю оригинальный код для удаления фона панели навигации для iOS 12 и более старых версий iOS в инструкциях else. Однако Apple объявила о создании новой системы под названием Appearance в любом месте для поддержки этой новой системы iOS 13.

    let app = UINavigationBarAppearance()

    let navigationBar = self.navigationController?.navigationBar

    app.configureWithOpaqueBackground()
    app.shadowImage = UIImage()


    self.navigationController?.navigationBar.scrollEdgeAppearance = app

    navigationBar!.standardAppearance = app
    navigationBar!.scrollEdgeAppearance = app

Я полагаю, что configureWithOpaqueBackground () позволяет нам удалить фон панели навигации,Но у меня на тесте на iOS 13.1 на симуляторе появляется черный фон панели навигации. Я знаю, что вызвало это.

     app.configureWithOpaqueBackground()
     app.titleTextAttributes = [.foregroundColor: UIColor.white]
     app.largeTitleTextAttributes = [.foregroundColor: UIColor.white]
     app.backgroundColor = #colorLiteral(red: 0.1603881121, green: 0.1677560508, blue: 0.2133775949, alpha: 1)

Этот код позволяет нам поставить собственный цвет на черном фоне. Я готов добавить этот код в операторы viewWillDisappear, чтобы восстановить фон панели навигации до нормального цветного фона до self.navigationController?.navigationBar.scrollEdgeAppearance = app с удалением app.configureWithOpaqueBackground() и app.shadowImage = UIImage(). Теперь мне нужно создать полупрозрачный фон панели навигации в операторах viewWillAppear, но он не может видеть полупрозрачный фон из-за отображения черного фона.

Я очень ценю вашу помощь в решении проблемы! :)

1 Ответ

1 голос
/ 26 октября 2019

Если вы хотите, чтобы панель навигации стала полностью прозрачной:

    let app = UINavigationBarAppearance()
    app.configureWithTransparentBackground()
    self.navigationController?.navigationBar.standardAppearance = app
    self.navigationController?.navigationBar.scrollEdgeAppearance = app
    self.navigationController?.navigationBar.compactAppearance = app

Не связывайтесь с isTranslucent панели навигации.

...