У меня есть UIScrollView A (на самом деле UICollectionView), заполняющий экран внутри UINavigationController B. У регулятора Bs adjustScrollViewInsets установлено значение true.Как поддерживать минимальную высоту содержимого содержимого UIScrollView?
Я хочу скрыть панель навигации, когда пользователь прокручивается вверх, и показывая ее, когда вниз. Ниже мой код:
func scrollViewDidScroll(scrollView: UIScrollView) {
if (self.lastContentOffset < scrollView.contentSize.height - scrollView.frame.size.height && self.lastContentOffset > scrollView.contentOffset.y) {
// dragging down
if self.navigationController!.navigationBarHidden {
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
} else if (self.lastContentOffset > 0 && self.lastContentOffset < scrollView.contentOffset.y) {
// dragging up
if !self.navigationController!.navigationBarHidden {
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
}
self.lastContentOffset = scrollView.contentOffset.y
}
Теперь проблема, так как экран iPhone 6+ слишком велик, contentSize из вида прокрутки А меньше рамы (т.е. полного кадра экрана), когда навигация бар скрыт. В таком случае прокрутка не будет прокручиваться, и панель навигации больше не вернется.
Я хочу, чтобы вручную поддерживать высоту содержимого. Размер A для экрана не менее высоты + 1, но не знаю, как это сделать. Может ли кто-нибудь помочь? Или обеспечить лучшее решение?
BTW, я использую iOS 8 и Swift.