【发布时间】:2014-11-17 23:24:48
【问题描述】:
我正在尝试布局视图网格。每行应该有 3 个视图。我试图这样定义我的UICollectionViewController 的构造函数:
- (id)initWithDefaultLayout
{
UICollectionViewFlowLayout* layout = [[UICollectionViewFlowLayout alloc] init];
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
CGFloat dimension = floorf(self.view.frame.size.width / 3.0f);
layout.itemSize = CGSizeMake(dimension, dimension);
layout.minimumInteritemSpacing = 1.0f;
layout.minimumLineSpacing = 1.0f;
return [super initWithCollectionViewLayout:layout];
}
程序在访问 self.view 的行上崩溃了:
NSException found: UICollectionView 必须用非零初始化 布局参数
我想loadView 的内部实现看到UICollectionViewLayout 没有设置并抛出异常。
我将如何以干净的方式解决此问题?如果我对项目的宽度进行硬编码,代码会很脆弱,因为 iOS 屏幕尺寸不同。此外,在某些情况下,此视图控制器以模态方式呈现(小于屏幕尺寸)。
【问题讨论】:
标签: ios iphone cocoa-touch uicollectionview