2013-10-04 4 views
1

Когда я помещаю свое приложение в iOS 7, верхняя ячейка получает покрытие моей навигационной панелью. Я пробовал использовать edgeForExtendedLayout, но он просто дает мне вид приложения iOS 6. Я пытаюсь использовать полупрозрачную панель в iOS 7, но edgeForExtendedLayout не помогает.Collection View iOS 7

Есть ли способ сделать эту ячейку ниже под навигационной панелью?

ответ

1

У вас есть несколько вариантов. 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).

+0

он работал, спасибо, но он не работал с self.topLayoutGuide.length, я просто поместил координаты. – ElioMB

+0

и как насчет webView? Он дает ошибку с этим кодом – ElioMB

+1

Для webView: 'webview.scrollView setContentInset: ...' –