正确地创建UITableViewCell
来源:互联网 发布:杭州淘宝美工培训学校 编辑:程序博客网 时间:2024/05/18 00:08
本文作者: 伯乐在线 - Welkin 。未经作者许可,禁止转载!
欢迎加入伯乐在线 专栏作者。
欢迎加入伯乐在线 专栏作者。
最近有人问到关于cell的创建方面的问题,然后发现做得多之后反而有点乱了,于是重新整理了一下思路。
通常情况下,我们会通过以下三种方式创建cell。
1. 纯代码
假设我们从UITableViewCell派生出CodeCustomCell,并重写了对应的init方法:
1
2
3
4
5
6
7
8
9
10
11
class CodeCustomCell: UITableViewCell {
let centerLabel = UILabel()
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
centerLabel.text = "Code"
addSubview(centerLabel)
}
}
在Controller中用 registerClass() 方法向tableView注册其cell的信息:
1
2
3
4
overridefuncviewDidLoad(){
super.viewDidLoad()
tableView.registerClass(CodeCustomCell.classForCoder(),forCellReuseIdentifier: cellID)
}
并在dataSource方法中获取即可:
1
2
3
4
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(cellID)
return cell!
}
2. xib
派生出IBCustomCell,并在xib中完成拖拽之后,在 awakeFromNib() 中完成控件的定制:
1
2
3
4
5
6
7
8
9
10
class IBCustomCell: UITableViewCell{
@IBOutletweakvar centerLabel: UILabel!
overridefuncawakeFromNib(){
super.awakeFromNib()
centerLabel.text="Xib"
}
}
注意, 不能 在以下方法中对控件进行定制。因为这个时候控件还没被初始化。
1
init?(coder aDecoder: NSCoder)
在Controller中通过向 registerNib() 方法,注册其cell的信息:
1
2
3
4
overridefuncviewDidLoad(){
super.viewDidLoad()
tableView.registerNib(UINib(nibName:"IBCustomCell",bundle: nil),forCellReuseIdentifier: cellID)
}
并在dataSource方法中获取即可:
1
2
3
4
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(cellID)
return cell!
}
3. storyboard
派生的类与xib的类似:
1
2
3
4
5
6
7
8
9
10
class SBCustomCell: UITableViewCell{
@IBOutletweakvar centerLabel: UILabel!
overridefuncawakeFromNib(){
super.awakeFromNib()
centerLabel.text="StoryBoard"
}
}
不同点在于cell在storyboard中的controller中进行配置:
往tableView中塞入一个cell,并设置其Class
和Identifier
最后直接在dataSource方法中获取即可:
1
2
3
4
functableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath)->UITableViewCell{
letcell=tableView.dequeueReusableCellWithIdentifier("cell")
returncell!
}
至于UICollectionViewCell,同理可得。
至此,demo。
0 0
- 正确地创建UITableViewCell
- 创建UITableViewCell
- Xib文件创建UITableViewCell
- UITableViewCell的创建
- Xib文件创建UITableViewCell
- 使用代码创建UITableViewCell
- 为拍照等正确地创建一个文件
- UITableViewCell对象的创建方式
- 使用xib文件创建UITableViewCell
- UITableViewCell组合创建(React Native)
- 代码动态创建UITableViewCell小结
- 创建UITableViewCell程序奔溃
- 创建一个可重用的UITableViewCell代码
- 创建UITableViewCell(不使用XIB情况)
- iOS中创建UITableViewCell的正确姿态
- UITableViewCell
- UITableViewCell
- UITableViewCell
- Swing超基础学习总结——6、JTable和JScrollPane
- learning think in java
- sdfasdf中文
- 链表的操作和基本算法 java
- OSIntEnter() 与 OSIntExit()
- 正确地创建UITableViewCell
- 编程资料收集
- Spring整合hibernate中Application.xml
- 进程组、会话、控制终端和守护进程
- AES加密 – iOS与Java的同步实现
- QT中QString与string的转化,解决中文乱码问题
- 数位DP初探(未完成
- Python Numpy数组保存
- Android中的系统服务