2014-02-26 30 views
1

在我的項目中,我創建了一個UICollectionView的自定義佈局。在這種佈局中,垂直滾動是不可能的,只有水平滾動是可能的。UICollectionView在iOS 7中不需要的垂直滾動

如果UIViewControllerstoryboard中唯一的,佈局是完美的,即沒有垂直滾動,只有水平滾動是可能的。

但是,如果您將UINavigationController添加到storyboard,則版式會在iOS 7(在模擬器和設備中測試)中失敗。然後垂直滾動是ENABLED。你可以滾動一點點,可能是20或30分。

但是對於iOS 6,佈局在使用和不使用UINavigationController時都能正常工作(在iPhone中進行測試)。

請幫忙。

感謝,

SOLUTION

我找到解決這個。

在iOS 7中,一些插圖自動添加到UICollectionView。因此,要解決這個問題,下面的代碼添加到的ViewController self.automaticallyAdjustsScrollViewInsets = NO;

我發現從https://stackoverflow.com/a/18989755/3117930

希望的解決方案,這是有幫助的人 謝謝,

回答

1

我可以告訴它試圖把重點放在最接近轉型前視圖佈局的中心細胞。但是,如果在轉換前視圖的中心沒有出現細胞,那麼它仍然會嘗試將細胞置於轉換後的中心位置。如果將alwaysBounceVertical/Horizo​​ntal設置爲YES,那麼這非常明顯,可以使用單個單元格加載視圖,然後執行佈局轉換。

在觸發佈局更新後,我能夠通過明確告訴集合專注於特定單元格(在本例中爲第一個單元格可見單元格)來解決此問題。

[self.collectionView setCollectionViewLayout:[self generateNextLayout] animated:YES]; 

// scroll to the first visible cell 
if (0 < self.collectionView.indexPathsForVisibleItems.count) 
{ 
    NSIndexPath *firstVisibleIdx = [[self.collectionView indexPathsForVisibleItems] objectAtIndex:0]; 
    [self.collectionView scrollToItemAtIndexPath:firstVisibleIdx atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:YES]; 
} 

希望這會幫助你。

+0

感謝的快速反應。我按照你的說法嘗試過。它沒有解決我的問題。 – varsim

+0

歡迎您。這裏有一些鏈接好心檢查出來,他們可以解決您的問題http://stackoverflow.com/questions/20234915/how-to-stack-uicollectionview-sections http://www.techotopia.com/index.php/An_iOS_7_Storyboard- based_Collection_View_Tutorial http://www.techotopia.com/index.php/An_Overview_of_iOS_7_Collection_View_and_Flow_Layout – Irfan