Скрыть разделительную строку панели навигации на iOS 13 - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть контроллер представления с панелью навигации с большим заголовком. Когда я пу sh контроллер, только на iOS 13 есть линия, видимая под панелью навигации. Как я могу это решить?

Я уже пробовал несколько решений в стеке, но они не работали, как:

let navigationBar = navigationController?.navigationBar
let navigationBarAppearence = UINavigationBarAppearance()
navigationBarAppearence.shadowColor = .clear
navigationBar?.scrollEdgeAppearance = navigationBarAppearence

С этим фрагментом, даже если я изменил "чистый цвет" с помощью красным цветом он виден только в первом контроллере, в толкаемом контроллере он всегда серый.

Как я могу это решить?

Редактировать

Я решил с помощью :

if #available(iOS 13.0, *) {
    let appearance = UINavigationBarAppearance()
    appearance.shadowColor = nil
    navigationController?.navigationBar.standardAppearance = appearance
 }

Ответы [ 2 ]

1 голос
/ 19 апреля 2020
import UIKit

public protocol HideableHairlineHelper {
    func hideHairline()
    func showHairline()
}

extension HideableHairlineHelper where Self: UIViewController {

    public func hideHairline() {
        self.navigationController?.navigationBar.shadowImage = UIImage()
        self.navigationController?.toolbar.setShadowImage(UIImage(), forToolbarPosition: .any)
    }

    public func showHairline() {
        self.navigationController?.navigationBar.shadowImage = nil
    }
}
0 голосов
/ 19 апреля 2020

Это мой шаблон NavBar, который я использую на своих контроллерах, нет линии.

navigationController?.setNavigationBarHidden(false, animated: false)
    navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
    navigationController?.navigationBar.shadowImage = UIImage()
    navigationController?.navigationBar.isTranslucent = true
    let titleAttributes =
        [
            NSAttributedString.Key.font: UIFont.systemFont(ofSize: 18),
            NSAttributedString.Key.foregroundColor: UIColor.red,
    ]
    self.navigationController?.navigationBar.titleTextAttributes = titleAttributes

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

...