2
我有一個視圖控制器,它包含7個單元格的集合視圖。當我顯示這個控制器,所有工作正常,它完美地顯示(控制器A)。 在另一個控制器(控制器B)我有一個容器視圖,嵌入控制器A與集合視圖。
問題:
運行的應用程序,並進入控制器B(嵌入控制器A)時,所有的控制器A的子觀點看,除了集合視圖的不錯。在這種情況下,不是看到我的7個細胞,我只看到6個細胞,並且在點擊其中一個細胞之後,最後一個細胞出現在細胞行中,現在它看起來很好(?!)。 它像收集視圖正在重繪,我找不到原因或如何解決它。
任何幫助表示讚賞。
編輯
這是我的流程佈局,這是我從viewDidLoad中稱:
-(void) setFlowLayout {
BOOL isIphone = (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad);
float baseWidth = [[UIScreen mainScreen] bounds].size.width;
int width;
width = floor(baseWidth/7.0);
float space = baseWidth - (width * 7.0f);
space /= 7.0;
UICollectionViewFlowLayout * flow = [[UICollectionViewFlowLayout alloc] init];
if(isIphone) {
flow.itemSize = CGSizeMake(width, kCellHeight);
}
else{
flow.itemSize = CGSizeMake(width, kCellSizeIpad);
}
flow.minimumInteritemSpacing = space;
flow.headerReferenceSize = CGSizeMake(_collectionDays.frame.size.width, kSpacing);
flow.footerReferenceSize = CGSizeZero;
flow.scrollDirection = UICollectionViewScrollDirectionVertical;
[_collectionDays setCollectionViewLayout:flow];
}
我也用這個來放置細胞在收集取景當中:
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{
CGFloat cellSpacing = ((UICollectionViewFlowLayout *) collectionViewLayout).minimumInteritemSpacing;
CGFloat cellWidth = ((UICollectionViewFlowLayout *) collectionViewLayout).itemSize.width;
NSInteger cellCount = [collectionView numberOfItemsInSection:section];
CGFloat inset = (collectionView.bounds.size.width - (cellCount * (cellWidth + cellSpacing))) * 0.5;
inset = MAX(inset, 0.0);
return UIEdgeInsetsMake(0.0, inset, 0.0, inset);
}
分享你的源代碼的相關部分 – ddb
分享一些代碼和圖像。 – Sandy