具有布局约束的 UicollectionView

UicollectionView with layout constraints

我在视图控制器中使用集合视图。

我没有在 IB 中使用自动布局,而是调整集合视图的大小。

我的问题是它在 iphone 4 秒内正常工作。当我 运行 在 iphone 6 上不正确时 .

我可以使用 nslayout 约束吗?我的 imageview 单元格大小宽度 80 和高度 90 是固定的。

任何适用于所有设备的解决方案?

您可以自动调整集合视图的大小,这将适用于除 iphone 4s 之外的所有 iPhone 设备,因此对于 iPhone 4S,您可以通过编程方式设置其对齐方式。如

-(void)ViewDidLoad{
     //get the screen size of device
     screenHeight = [UIScreen mainScreen].bounds.size.height;
        if (screenHeight == 480){
        //Your code e.g
        <collectionView>.frame = CGRectMake((x-axis),(y-axis),width,height);
    }
}

如果您不使用自动布局,请通过属性设置自动调整大小遮罩

你也可以通过代码实现:

view.autoresizingMask = (UIViewAutoresizingFlexibleWidth |    
                              UIViewAutoresizingFlexibleLeftMargin);

调整单元格大小

如果您想根据设备更改集合视图的单元格大小,请使用以下方法:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout
  sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return CGSizeMake((collectionView.frame.size.width/4)-5, (collectionView.frame.size.width/4)-5);
}

这里 5 是单元格之间的填充。