我们现在画面都已经跟Iphone内建的闹钟一样了,但虚有其表是不行的,
马上来实作TableViewCell的点击功能吧!
今天会先实作较单纯的「标签」栏位。
想要让TableViewCell点击後有功能,就必须实作TableView Delegate & DataSource内的
didSelectRowAt(),让我们先新增以下的Code:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
switch indexPath.row {
// 点击第一栏时,要做什麽
case 0:
break
// 点击第二栏时,要做什麽
case 1:
break
// 点击第三栏时,要做什麽
case 2:
break
// 点击第四栏时,要做什麽
case 3:
break
default:
break
}
}
由於我们是要做第二个栏位的内容,因此需要在Case 1做更动,
那我们看一下IPhone点下第二个栏位时会做什麽事:
可以看到点下去後,会有一个新画面由右而左出现,
因此我们需要加新增一个ViewController,将其命名为:「AlarmLabelViewController」
class AlarmLabelViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
initView()
}
func initView() {
self.view.backgroundColor = .white
}
}
之後在TableView的「didSelectRowAt()」新增以下程序码:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
switch indexPath.row {
// 点击第一栏时,要做什麽
case 0:
break
// 点击第二栏时,要做什麽
case 1:
let vc = AlarmLabelViewController()
// 使用navigationController的pushViewController(),达到画面由右至左的效果。
self.navigationController?.pushViewController(vc, animated: true)
// 点击第三栏时,要做什麽
case 2:
break
// 点击第四栏时,要做什麽
case 3:
break
default:
break
}
}
现在应该会像以下这样:
接着只要实作AlarmLabelViewController()的画面:
class AlarmLabelViewController: UIViewController {
let alarmLabelTextField: UITextField = {
let textField = UITextField()
textField.text = "闹钟"
textField.textColor = .white
textField.backgroundColor = #colorLiteral(red: 0.1537905931, green: 0.1488661468, blue: 0.1617964804, alpha: 1)
textField.clearButtonMode = .whileEditing
textField.borderStyle = .roundedRect
textField.font = UIFont.systemFont(ofSize: 20)
return textField
}()
override func viewDidLoad() {
super.viewDidLoad()
initView()
setViews()
setLayouts()
}
func initView() {
// 设定这个ViewController的背景色
self.view.backgroundColor = #colorLiteral(red: 0.1097886786, green: 0.1098149046, blue: 0.1183715835, alpha: 1)
// 设定NavigationBar的文字
self.title = "标签"
// 设定navigation BackButton Color
self.navigationController?.navigationBar.tintColor = .orange
}
func setViews() {
self.view.addSubview(alarmLabelTextField)
}
func setLayouts() {
alarmLabelTextField.snp.makeConstraints { make in
make.top.equalTo(self.view).offset(300)
make.centerX.equalTo(self.view)
make.width.equalTo(self.view)
make.height.equalTo(50)
}
}
}
明天就来説说新手都头痛的Delegate传值罗
<<: [Day 19] 突如其来的需求变更!来聊函数式编程
>>: Day 24-Unit Test 应用於 ORM (以 Entity Framework 为例) (情境及应用-4)
「我家今晚没人,这是我的地址。」 我们昨天介绍了区块链的基本架构, 知道交易纪录如何在区块链上保存、...
某天闲晃网站时看到一个充满魔性的选单按钮 是这个样子的 图源:https://www.pintere...
虽然想把这些敏捷有关的精神导入团队中,但自己仍不愿意对外说在执行敏捷的流程。其中一个最大的差异,是在...
有了IN就会有NOT IN,而写法跟用法一样的,就是不包含写的条件都会列出来 另外值得注意的是,IN...
在前篇文章中,我已经将 Grafana Operator 部署到 "brandon&quo...