当设备从纵向更改为横向时,有没有办法在UICollectionView
中调整单元格的大小?随着新的iOS 6自动布局?我不想重新加载整个UICollectionView
。
如果有人想知道,大家好找到了解决办法。 解决方案:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
if ([indexPath row] == 0 && ([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait || [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown )){
return CGSizeMake(768, 400);
}else if ([indexPath row] == 0 && ([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft || [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight)){
return CGSizeMake(1024, 400);
}
return CGSizeMake(255, 200);
}
因此,方法sizeForItemAtIndexPath使用CGSize指定每个单元格的宽度和高度。您需要做的就是检测细胞的方向,并返回您想要的特定高度。请记住,我只是为了设计目的而改变一个单元格。
之后,我在:
中调用了[invalidate layout]- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
基本上再次获取每个单元格的布局,也不会重新加载UICollectionView的数据!