Когда мой проект был в Swift 2, у меня был этот код, который работал:Swift 3 удалить линии под навигационной панели
extension UINavigationController {
func hairLine(hide: Bool) {
//hides hairline at the bottom of the navigationbar
for subview in self.navigationBar.subviews {
if subview.isKind(of: UIImageView.self) {
for hairline in subview.subviews {
if hairline.isKind(of: UIImageView.self) && hairline.bounds.height <= 1.0 {
hairline.isHidden = hide
}
}
}
}
}
}
Но сейчас что-то изменилось, и он не работает. Не уверен, что это из-за Swift 3 или iOS10, или что я сейчас тестирую 7plus против 6s, но он больше не работает. Я бы назвал его viewWillAppear контроллера вида, который отображается. Я видел ответ здесь, говоря, чтобы использовать
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
но это не сработало. Я попытался заменить содержимое моей старой hairLine() этими двумя строками, попытался поместить их непосредственно в viewWillAppear и viewDidAppear, но все равно не работает для меня.
попробовал это в viewDidAppear & Load, но до сих пор линию. Где вы называете этот код? Я вызываю его из контроллера, встроенного в навигационную панель, как и в моем старом коде. Должен ли я пытаться где-то еще? –
У меня есть это в viewDidLoad контроллера, встроенного в навигационную панель. Позвольте мне подумать над тем, что может быть проблемой. –