具有布局约束的 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 是单元格之间的填充。
我在视图控制器中使用集合视图。
我没有在 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 是单元格之间的填充。