Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift - 使用网格(UICollectionView)的自定义布局实现复杂页面大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

网格UICollectionView除了使用流布局,还可以使用自定义布局。实现自定义布局需要继承UICollectionViewLayout,同时还要重载下面的三个方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 // 这个方法返回每个单元格的位置和大小 override  func  layoutAttributesForItemATindexPath(indexPath: 
网格UICollectionView除了使用流布局,还可以使用自定义布局。实现自定义布局需要继承UICollectionViewLayout,同时还要重载下面的三个方法
@H_675_111@
1
@H_772_24@ 2
3
4
5
6
7
8
9
10
11
12
13
// 这个方法返回每个单元格的位置和大小
override func layoutAttributesForItemATindexPath(indexPath: NSIndexPath )
-> UICollectionViewLayoutAttributes ? {
}
// 返回内容区域总大小,不是可见区域
collectionViewContentSize() -> CGSize {
}
// 返回所有单元格位置属性
layoutAttributesForElementsInRect(rect: CGRect )
-> [ ]? {
}

下面实现一个自定义布局的例子,单元格有大小两种。网格从上到下,先是左边一个大单元格右边两个小单元格,接着左边两个小单元格右边一个大单元格,依次同上循环排列。
效果图如下:


--- 自定义布局CustomLayout.swift ---
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
@H_602_262@ 75
76
77
78
79
80
81
82
83
84
85
86
87
import UIKit
/**
* 这个类只简单定义了一个section的布局
*/
@H_434_301@class CustomLayout : UICollectionViewLayout {
// 内容区域总大小,不是可见区域
{
return CGSizeMake (collectionView!.bounds.size.width,
CGFloat (collectionView!.numberOfItemsInSection(0) * 200 / 3 + 200))
}
// 所有单元格位置属性
)
]? {
var attributesArray = [ ]()
let cellCount = self .collectionView!.numberOfItemsInSection(0)
for i in 0..<cellCount {
indexPath = (forItem:i,inSection:0)
attributes = .layoutAttributesForItemATindexPath(indexPath)
attributesArray.append(attributes!)
}
return attributesArray
}
// 这个方法返回每个单元格的位置和大小
)
@H_459_419@? {

大佬总结

以上是大佬教程为你收集整理的Swift - 使用网格(UICollectionView)的自定义布局实现复杂页面全部内容,希望文章能够帮你解决Swift - 使用网格(UICollectionView)的自定义布局实现复杂页面所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。