iphone 5 上的 UICollectionView 布局问题
UICollectionView layout issue on iphone 5
我的 UICollectionView 有问题,我有 3 列并且一切正常,而不是 iphone 5 和 4。
在 iphone 6 中,我的 collectionview 看起来(单元格宽度):
Iphone 5 个单元格:
问题是,在最后一行,我有 2 个单元格,看起来像这样:
我想要达到的效果:
尽可能将插图设置为 (0, 0, 0, 0)。我使用默认布局,我的插图设置在情节提要中。那么是否可以通过流式布局来实现这一点,或者我需要研究自定义布局?
=== 编辑
我在故事板中创建 UICollectionView 并实现委托:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
float width = self.frame.size.width / 3.0f;
float height = floorf(width + 118);
if(SMALLER_THAN_6){
width = floorf(width);
if([indexPath row] % 3 < 2){
++width;
}
}
return CGSizeMake(width, height);
}
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(0, 0, 0, 0);
}
- (CGFloat)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout
minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 0.0;
}
- (CGFloat)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout
minimumLineSpacingForSectionAtIndex:(NSInteger)section{
return 0.0;
}
我通过在行末插入一个空单元格解决了这个问题(仅在 iphone 4 和 5 上)
我的 UICollectionView 有问题,我有 3 列并且一切正常,而不是 iphone 5 和 4。
在 iphone 6 中,我的 collectionview 看起来(单元格宽度):
Iphone 5 个单元格:
问题是,在最后一行,我有 2 个单元格,看起来像这样:
我想要达到的效果:
尽可能将插图设置为 (0, 0, 0, 0)。我使用默认布局,我的插图设置在情节提要中。那么是否可以通过流式布局来实现这一点,或者我需要研究自定义布局?
=== 编辑 我在故事板中创建 UICollectionView 并实现委托:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
float width = self.frame.size.width / 3.0f;
float height = floorf(width + 118);
if(SMALLER_THAN_6){
width = floorf(width);
if([indexPath row] % 3 < 2){
++width;
}
}
return CGSizeMake(width, height);
}
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(0, 0, 0, 0);
}
- (CGFloat)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout
minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 0.0;
}
- (CGFloat)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout
minimumLineSpacingForSectionAtIndex:(NSInteger)section{
return 0.0;
}
我通过在行末插入一个空单元格解决了这个问题(仅在 iphone 4 和 5 上)