实现自定义布局需要继承UICollectionViewLayout,同时还要重载下面的三个方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
//
内容区域总大小,不是可见区域
override var collectionViewContentSize: CGSize {
}
//
所有单元格位置属性
override func layoutAttributesForElements( in rect: CGRect )
->
[ UICollectionViewLayoutAttributes ]?
{
}
//
这个方法返回每个单元格的位置和大小
override func layoutAttributesForItem(at
indexPath: IndexPath )
-> UICollectionViewLayoutAttributes ?
{
}
|
下面实现一个自定义布局的例子,单元格有大小两种。网格从上到下,先是左边一个大单元格右边两个小单元格,接着左边两个小单元格右边一个大单元格,依次同上循环排列。
效果图如下:
--- 自定义布局 CustomLayout.swift ---
(本文样例代码已升级到Swift3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
|
请发表评论