Я пытаюсь иметь прозрачную панель навигации в приложении IOS 7. В моем приложении существует полноэкранное изображение. У меня также есть UITableView по тому изображению. То, когда я использую код ниже, отображаю, соответствует экрану, как я хочу, но UITableView идет под панелью навигации.
в viewDidLoad
я использую
self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;
self.navigationController.view.backgroundColor = [UIColor clearColor];
хорошо, когда я изменяюсь на self.navigationController.navigationBar.translucent = NO;
но затем я теряю прозрачность в панели навигации.
Все, в чем Вы нуждаетесь, является любовью это:
assert(tableView.contentInsetAdjustmentBehavior == .automatic)
существует нуль, должен сделать ужасные волшебные константы beardance от iOS 11 вперед
, я даже не должен был устанавливать contentInsetAdjustmentBehavior на .none для фиксации navbar underlapping.
.automatic
работал автоволшебно
попытайтесь использовать layoutguide для фиксации
var constraints = [NSLayoutConstraint]()
let guide = view.safeAreaLayoutGuide
constraints.append(self.tableView.leadingAnchor.constraint(equalTo: guide.leadingAnchor))
constraints.append(self.tableView.trailingAnchor.constraint(equalTo: guide.trailingAnchor))
constraints.append(self.tableView.topAnchor.constraint(equalTo: guide.topAnchor))
constraints.append(self.tableView.bottomAnchor.constraint(equalTo: guide.bottomAnchor))