Я хочу изменить размер и положение подпредставления ячейки tableView
из scrollViewDidScroll(_:)
, измерив contentOffset
.contentOffset
, кажется, переходит к ненулевому значению при первом вызове scrollViewDidScroll(_:)
.
Для UITableView
в UINavigationController
, adjustedContentInset
на iOS 11 позволяет правильно рассчитатьотносительный contentOffset
при прокрутке tableView
.
Например, если я прокручиваю tableView
, я могу вычислить точную сумму, по которой он был прокручен следующим образом:
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
var adjustedTopInset: CGFloat = 0.0
if #available(iOS 11.0, *) {
adjustedTopInset = scrollView.adjustedContentInset.top
}
let deltaY = scrollView.contentOffset.y - adjustedTopInset
}
Дело в том, что adjustedContentInset
доступен только на iOS 11, как рассчитать ту же относительную сумму прокрутки на iOS 10?
В viewDidLoad()
contentOffset
из tableView
равно CGPointZero
, но при первом вызове scrollViewDidScroll(_:)
contentOffset.y
переходит к значению, которое является высотой панели навигации и строки состояния.На iOS 11 adjustedContentInset
помогает, предоставляя эту высоту.
Как я могу рассчитать это на iOS 10?