Мы показываем прямоугольник с меткой над табличным представлением, когда обнаруживаем ошибку:
С помощью этого кода:
// Fix location of message bar even as user scrolls table - per http://stackoverflow.com/q/7537858/47281
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
let newY = self.tableView.contentOffset.y + self.navigationController!.navigationBar.frame.size.height + UIApplication.shared.statusBarFrame.height
// Show rectangle using 0 and newY ...
Он работает хорошо, но в некоторых случаях не работает, например, когда включена личная точка доступа. Между панелью навигации и прямоугольником состояния есть разрыв:
Как правильно размещать что-либо под панелью навигации?
В первом случае высота строки состояния равна 20, а во втором - 40. В обоих случаях панель навигации и смещение содержимого одинаковы. Т.е.:
- Случай № 1: Смещение: -64,0, высота панели навигации: 44,0 Высота строки состояния: 20,0
- Случай № 2: Смещение: -64,0, высота панели навигации: 44,0 Высота строки состояния: 40,0
Похоже, что смещение не увеличивается из-за изменения высоты в строке состояния.
Обновление: см. (мой) принятый ответ. Я уверен, что есть способ получше ... пожалуйста, добавьте его в тему, если вы его знаете.
definePresentationContext = true
- person Nazmul Hasan   schedule 18.04.2017