动态更改单元格间距UICollectionView

时间:2016-11-08 09:05:33

标签: ios objective-c uicollectionview uicollectionviewcell

UICollectionView存在一些问题和细胞间距。我想出了如何更改间距并完美地适用于我的纵向视图,但不适用于我的横向视图。我试着区分:

//set minimum spacing
if(UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)){

    layout.minimumLineSpacing = 100.0f;
}
else{

    layout.minimumLineSpacing = 40.0f;
}

但不幸的是,当我从纵向切换到横向时,它不会改变。谁能告诉我如何实现这一目标呢?

2 个答案:

答案 0 :(得分:0)

试试这个

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    [yourcollectionView performBatchUpdates:nil completion:nil];
}

答案 1 :(得分:0)

我明白了,这正是我所怀疑的。我移动代码以将间距创建为自己的函数,然后根据方向返回值。代码如下:

-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)
collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section{

if(UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)){

    NSLog(@"Changed to landscape Spacing");
    return 100.0f;
}
else{

    return 40.0f;
}

}

感谢帮助人员,您的意见帮助我找到了一个解决方案,有时与某人讨论问题有助于我思考