J'ai caché l'ombre de la barre de navigation en utilisant l'astuce suivante:
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) self.navigationController?.navigationBar.shadowImage = UIImage()
J'ai aussi l'set suivant:
self.extendedLayoutIncludesOpaqueBars = true self.automaticallyAdjustsScrollViewInsets = true self.tabBarController?.tabBar.isHidden = true
Tout a l'air bien sur ma page, sauf que lorsque je fais défiler ma tableView
il passe sous la barre de navigation comme prévu, mais au-dessus de la barre d'état:
Comment puis-je m'assurer que le tableView
défile sous la barre de navigation et la barre d'état?
Cela placera l'UITableView sous la barre d'état.
self.edgesForExtendedLayout=UIRectEdgeNone; self.extendedLayoutIncludesOpaqueBars=NO; self.automaticallyAdjustsScrollViewInsets=NO;
Vous avez caché l'arrière-plan par défaut de la barre de navigation, c'est donc à prévoir. Cela signifie que vous créez vous-même le fond vert dans la barre de navigation. Vous devez l'étendre manuellement pour couvrir à la fois la barre d'état et la barre de navigation, ce qui correspond à l'arrière-plan par défaut.
Ou utilisez une image verte au lieu d'une image transparente.
Vous pouvez essayer la vue table comme sous UIEdgeInsetMake et aussi sa vue déroulante
tableView.contentInset = UIEdgeInsetsMake(20.0, 0.0, 0.0, 0.0) tableView.scrollIndicatorInsets = UIEdgeInsetsMake(20.0, 0.0, 0.0, 0.0)