我是IOS的新手,我正在尝试理解UICollectionView的概念。我正在读一些文章。所有文章都谈论布局对象。但我不明白UICollectionView和布局对象之间的关系。拜托,您能帮我理解这个概念。感谢。
答案 0 :(得分:0)
<强> UICollectionViewLayout 强>
UICollectionViewLayout类是您的抽象基类 子类并用于生成集合视图的布局信息。 布局对象的工作是确定单元格的位置, 集合视图中的补充视图和装饰视图 边界并将该信息报告给集合视图 问。然后,集合视图应用提供的布局 信息到相应的视图,以便它们可以呈现 在屏幕上。
这是UICollectionViewFlowLayout和UICollectionViewTransitionLayout的基类。
初始化UICollectionView
时,您必须指定要使用上述两种布局的布局。如果您想要像Instagram这样的普通流式布局或基本上任何UITableView
,那么您选择UICollectionViewFlowLayout
。如果您希望它具有专门的行为布局,例如创建交互式过渡,手势识别器或触摸事件以在集合视图中从一个布局更改为另一个布局时实现行为,则可以UICollectionViewTransitionLayout
。
在代码中:
UICollectionViewFlowLayout *collectionLayout = [[UICollectionViewFlowLayout alloc] init];
// OR
UICollectionViewTransitionLayout *collectionLayout = [[UICollectionViewTransitionLayout alloc] init];
UICollectionView *myCollectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) collectionViewLayout:collectionLayout];
[myCollectionView setDelegate:self];
[myCollectionView setDataSource:self];
[myCollectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:cellIdentifier];
[self.view addSubview:myCollectionView];
请注意: .. collectionViewLayout:collectionLayout];