У вас есть несколько вариантов. UICollectionView
- это подкласс UIScrollView
.
Самый простой способ - превратить ваш контроллер вида в подкласс UICollectionViewController
, который автоматически позаботится об этих проблемах. Дополнительная информация here.
Если вы не можете, либо установить automaticallyAdjustsScrollViewInsets
на YES
в контроллере представления, или вручную установить contentInsets вашего представления коллекции вручную в viewDidLayoutSubviews
так:
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews]
[_collectionView setContentInset:UIEdgeInsetMake(self.topLayoutGuide.length, 0, self.bottomLayoutGuide.length, 0)];
[_collectionView setScrollIndicatorInsets: _collectionView.contentInset];
}
Дополнительное преимущество использования UICollectionViewController
является поддержка useLayoutToLayoutNavigationTransitions
, который может создавать интересные переходы между макетами представления коллекций (например, приложение для мобильного календаря Apple).
он работал, спасибо, но он не работал с self.topLayoutGuide.length, я просто поместил координаты. – ElioMB
и как насчет webView? Он дает ошибку с этим кодом – ElioMB
Для webView: 'webview.scrollView setContentInset: ...' –