2014-10-18 94 views
1

令人驚訝的是,在更新到iOS8之後,我的應用沒有像iOS7那樣運行。 特別是,我做了一個日曆UICollectionView。在iOS7罰款,月份單元格顯示正確。但在iOS8 ... enter image description hereUICollectionView iOS8錯誤的偏移

我看向上方的偏移,這就是細胞向上移動......我不明白,真的....代碼很簡單。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
UINib * nib = [UINib nibWithNibName:@"AgendaYearCollectionCell" bundle:[NSBundle mainBundle]]; 
    [self.collectionView registerNib:nib forCellWithReuseIdentifier:agendaYearCellIdentifier]; 
    [self.collectionView setDelegate:self]; 
    [self.collectionView setDataSource:self]; 
    UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; 
    layout.minimumInteritemSpacing  = 0; 
    layout.minimumLineSpacing   = 1; 
    [self.collectionView setCollectionViewLayout:layout]; 
} 

集合不可滾動。如果我讓它滾動,我可以滾動並查看第一行的單元格。但我不想要一個可滾動的集合。 我認爲問題在於插圖。事實上,如果我玩:

- (UIEdgeInsets)collectionView: 
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { 
    return UIEdgeInsetsMake(40, 2, 50, 60); 

} 

我終於可以再次獲得第一行。但如何計算所有屏幕/設備的值?我的應用僅適用於風景,僅適用於iPad。 蘋果改變了什麼?

+0

我現在有類似的問題。對我來說,它看起來像單元格的*內容*向下移動。我在每個單元格中都有一個UIImageView,與在iOS 7/6上運行相比,或者使用iOS 8設備上的應用商店中的現有應用程序,圖像顯示爲20點左右 - 不同之處在於SDK使用時編譯(iOS 7 SDK與新的iOS 8 SDK)。如果我有足夠的內容可以在集合視圖中滾動,則任何後續刷新的單元格都顯得正常。 – Jonny 2014-11-17 02:29:04

+0

http://stackoverflow.com/questions/26964653/incorrect-position-of-content-within-uicollectionview-in-ios-8 – Jonny 2014-11-17 02:35:46

回答

0

您的收藏查看具有負頂部偏移量。提供更多的代碼可能會有所幫助,但我們先來試一下。

你叫:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView 
        layout:(UICollectionViewLayout *)collectionViewLayout 
    insetForSectionAtIndex:(NSInteger)section 

,除非你想爲不同的部分不同的插圖我不會把這個。看起來你只有一個部分。我將與流式佈局進行配置:

flowLayout.sectionInset = CGSizeMake(40.0, 2.0, 50.0, 60.0); 

我建議放棄的iOS 7的支持,與iOS 7的所有設備都可以升級到8

如何計算值用於所有畫面/設備?

應該是任何iPad的偏移量。即使蘋果將用更大的屏幕出貨iPad,你的抵消也將是相同的。如果您希望支持iPhone的通用應用程序,則可以進行設備狀態檢查並根據設備範例分配不同的數字。

此外,它可能是頂部的東西。你有沒有和導航欄混淆?它從圖片中沒有清楚。