在iOS 6中使用自动布局调整单元格大小

时间:2013-02-09 21:24:29

标签: ios6 uicollectionview autolayout

当设备从纵向更改为横向时,有没有办法在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的数据!

0 个答案:

没有答案