当前位置: 首页 > 资讯 >

Swift纯Code之旅 Day14. 「TableView(5) - 点击TableViewCell」

前言

我们现在画面都已经跟Iphone内建的闹钟一样了,但虚有其表是不行的,
马上来实作TableViewCell的点击功能吧!
今天会先实作较单纯的「标签」栏位。
https://ithelp.ithome.com.tw/upload/images/20210924/20108999sN6kMomWHk.png

实作

想要让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传值罗


相关文章:

  • 防止使用者频繁送出 Request & 倒数计时重新发送认证码
  • [Day_21]回圈与生成式 - 练习题
  • 计算机概论 - 资料处理 Data manipulation
  • [拯救上班族的 Chrome 扩充套件] 规划架构和使用情境
  • Day8 PHP
  • DAY29:实作专案之总结
  • 【第二八天 - Flutter 开发套件之旅(上)】
  • Day51. 职责链模式
  • [Day9]C# 鸡础观念- 省去重复程序码的好帮手~for回圈
  • 【Day11】动态型别
  • DAY13:Fragment片段之实作
  • 初学者跪着学JavaScript-Day1
  • 抓取资料库数据 - SQL基础语法(下)
  • Day7. 使用 Whimsical 绘制低精度 Wireframe
  • Line Bot 发送文字讯息外的格式 (Message types)
  • 一键脚本:SmokePing一键安装/管理脚本
  • 海外营销周报:谷歌在搜索中取消Q&A功能,FaceBook Marketplace用户总量达 10 亿人 – 知外贸
  • Gutenberg最新版如何添加导航间隔
  • 虚拟信用卡是什么?虚拟信用卡安全吗?怎么用?怎么申请教程
  • 让 Rank Math SEO 输出关键词 keywords meta 字段信息
  • Vultr促销码和2020年最新优惠:Vultr注册教程和使用方法
  • 搬瓦工VPS注册购买教程 – 支付宝BandwagonHost购买方法教程
  • 网站更换域名后副作用大吗?针对谷歌如何更换域名
  • WordPress 5.7.1 修复2个安全问题,请及时更新
  • 2020最新Google Voice号码申请方法(非脚本)
  • 升级wordpress出错怎么办?wordpress升级502错误解决方法
  • WordPress 5.7.2 修复 PHPMailer 安全漏洞,请及时更新
  • PayPal绑定国内手机卡的方法:国外PayPal怎么绑定国内手机号
  • Facebook和instagram推广营销教程
  • Android让系统信任用户证书的方法