昨天已经将TableView给建立完毕了,今天来跟大家聊聊TableViewCell的建立方法,
首先介绍一下TableViewCell,TableViewCell就是TableView上面的栏位,
一个栏位就等於一个Cell。
实作TableViewCell前,必须先观察Cell中有哪些元件,才知道要时做出哪些元件出来。
观察结果如下:
会发现共有两种不同的Cell:
因此会需要实作两个TableViewCell,马上来实作吧。
这边会先建立包含两个UILabel的TableViewCell,
那要如何建立TableViewCell呢?跟着以下做看看吧~
Step. 1
Step. 2
Step. 3 (将这个TableViewCell命名为:「addAlarmContentTableCell」)
Step. 4 完成
建立完成後内容应该会如下:
class addAlarmContentTableViewCell: UITableViewCell {
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
但由於我们是用Code建立的,因此必须要先将里面的 awakeFormNib() & setSelected() 删除,
并该改为以下:
class addAlarmContentTableViewCell: UITableViewCell {
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
接着就来实作TableViewCell的内容吧!
首先建立两个UILabel,一个命名为:titleLabel,另一个为:contentLabel
let titleLabel: UILabel = {
let label = UILabel()
label.textColor = .white
return label
}()
let contentLabel: UILabel = {
let label = UILabel()
return label
}()
一样要记得加进 TableViewCell 里面
func setViews() {
self.addSubview(titleLabel)
self.addSubview(contentLabel)
}
然後做Layout
func setLayouts() {
titleLabel.snp.makeConstraints { make in
// titleLabel 的顶部跟底部贴齐TableViewCell的顶部跟底部
make.top.bottom.equalTo(self)
// titleLabel 的左边距离TableViewCell的左边间隔10
make.leading.equalTo(self).offset(10)
}
contentLabel.snp.makeConstraints { make in
// contentLabel 的顶部、底部都贴齐TableViewCell
make.top.bottom.equalTo(self)
// contentLabel 的右边距离TableViewCell的右边间隔50
// 为了不跟TableView Accessory重叠
make.trailing.equalTo(self).offset(-50)
}
}
设定完後记得将SetViews() & setLayouts() 加入init()内,然後执行看看吧!
你的画面应该会长下面这样:
怎麽画面没变!明明都设定好了呀?
那是因为我们只是将TableViewCell建立出来而已,并没有告知TableView要使用哪个TableViewCell,
那让子弹飞一会儿,明天再来讨论该如何让TableView知道要用哪个TableViewCell吧!
>>: JavaScript入门 Day14_如何使用数字6
#odoo #开源系统 #数位赋能 #E化自主 人力资源流程当中大家最关切的应该就是领薪水了! 但是...
今天来讲第四题练习题罗 其实自己练习到现在,自己的java也有一些些的进步 虽然还是有一些看不懂,甚...
Microsoft 365 DLP(资料外泄防护)警示将协助我们进行调查找出完整的事件范围。 DLP...
因为有使用到Arduino IDE,再加上今年以前的暑训都是在上Arduino,所以还是特别安排一天...
今天就来看一下人脸辨识 + 物件追踪可以迸出什麽样的火花吧! 本文开始 在applications目...