Swift UI专项训练7 数据添加

简介:   上一话我们使用了自己定义的控制器之后发现tableview上的餐馆没有了,这一话我们来添加数据,新添加一个餐馆类,这个类我们不需要继承系统的类,直接添加一个swift文件就好import Foundationclass Restaurant { var name = "" var location = "" var score = 10}我简单建一个类,分别代表餐馆名字、餐馆位置和餐馆评分,它们都有默认值。

  上一话我们使用了自己定义的控制器之后发现tableview上的餐馆没有了,这一话我们来添加数据,新添加一个餐馆类,这个类我们不需要继承系统的类,直接添加一个swift文件就好


import Foundation

class Restaurant {
    var name = ""
    var location = ""
    var score = 10

}

我简单建一个类,分别代表餐馆名字、餐馆位置和餐馆评分,它们都有默认值。

然后我们回到餐馆排行的控制器中新建一个餐馆的数组。

var restaurantList = [Restaurant]()

之后添加一个方法来初始化数据。

func loadInitData(){
        let rest1 = Restaurant()
        rest1.name = "蜀渝蜀二"
        restaurantList.append(rest1)
        
        let rest2 = Restaurant()
        rest2.name = "芳芳餐厅"
        restaurantList.append(rest2)
        
        let rest3 = Restaurant()
        rest3.name = "阿慧餐厅"
        restaurantList.append(rest3)
        
        let rest4 = Restaurant()
        rest4.name = "酱府老碗面"
        restaurantList.append(rest4)
        
        let rest5 = Restaurant()
        rest5.name = "要德平价川菜"
        restaurantList.append(rest5)
        
        let rest6 = Restaurant()
        rest6.name = "大碗饭"
        restaurantList.append(rest6)
    }

之后在viewDidLoad中调用一下就好了。但是现在我们运行会发现表格中依然空空如也,这是为什么呢?原来是我们并没有使用委托,我们需要把更新的表格内容委托给控制器。由于我们是子代理,所以需要重载控制器的很多方法,这些方法在我们的控制器代码中已经写好了我们只需要按住自己的需求去做修改,比如下面这个方法:

   override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        // #warning Potentially incomplete method implementation.
        // Return the number of sections.
        return 1
    }
这个方法规定了表格的区块,有的表格比较复杂可能不止一个区域,我们返回1代表只有一个区块。

  override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete method implementation.
        // Return the number of rows in the section.
        return restaurantList.count
    }

上面的方法用来规定表格的行数,我们返回的是数组的元素个数,有很多设置方法名都是tableView,但是参数不同,大家选择自己需要的。通常单元格的每一行的格式都是相同的,所以我们需要设一个默认格式来重用,打开storyboard,选择某一table view cell然后设定Identifier,命名为PCell。底下的Selection是选中样式,有以下几种:

这个是选中后会有什么颜色,我们选择None。回到代码中:

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("PCell", forIndexPath: indexPath) as UITableViewCell

        // Configure the cell...

        return cell
    }

这个方法的作用是重用我们刚才设置的默认格式。现在我们对cell格式和内容的操作都在上面这个方法中进行就好了。增加一行:
cell.textLabel?.text = restaurantList[indexPath.row].name//行数
运行效果:



目录
相关文章
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
|
6月前
|
JavaScript
vue element-ui中有关表格中的数据整条显示红色/绿色等等颜色的问题
vue element-ui中有关表格中的数据整条显示红色/绿色等等颜色的问题
215 1
|
4月前
|
前端开发
Element UI 【实战】纯前端对表格数据进行增删改查(内含弹窗表单、数据校验、时间日期格式)
Element UI 【实战】纯前端对表格数据进行增删改查(内含弹窗表单、数据校验、时间日期格式)
177 6
|
3月前
|
前端开发 JavaScript UED
element-ui 表格数据究竟隐藏着怎样的神秘样式与格式化技巧?快来揭开谜底!
【8月更文挑战第22天】《element-ui 表格数据样式及格式化案例》展示了如何利用 element-ui 的表格组件实现美观且易读的数据展示。通过简单配置,可以自定义表格样式,如边框、背景色等,并通过 formatter 实现数据格式化,例如将成绩保留一位小数。此外,还能依据条件设置行样式,如成绩达优则高亮显示,从而增强用户体验和数据可读性。
62 1
|
3月前
|
测试技术 Swift iOS开发
探索iOS自动化测试:使用Swift编写UI测试
【8月更文挑战第31天】在软件开发的海洋中,自动化测试是保证船只不偏离航线的灯塔。本文将带领读者启航,深入探索iOS应用的自动化UI测试。我们将通过Swift语言,点亮代码的灯塔,照亮测试的道路。文章不仅会展示如何搭建测试环境,还会提供实用的代码示例,让理论知识在实践中生根发芽。无论你是新手还是有经验的开发者,这篇文章都将是你技能提升之旅的宝贵指南。
|
4月前
Element UI【级联选择器】el-cascader 获取选中内容的 label 数据,鼠标悬浮显示超长内容
Element UI【级联选择器】el-cascader 获取选中内容的 label 数据,鼠标悬浮显示超长内容
601 3
|
4月前
Element UI 多选表格--判断勾选数据行的 Checkbox 时为选中还是取消选中
Element UI 多选表格--判断勾选数据行的 Checkbox 时为选中还是取消选中
43 1
|
4月前
Element UI 多选表格【翻页多选】简易版(不支持翻页多选数据反显)
Element UI 多选表格【翻页多选】简易版(不支持翻页多选数据反显)
93 0
Element UI 多选表格【翻页多选】简易版(不支持翻页多选数据反显)
|
4月前
软件研发核心问题之在需求拆解过程中,“数据与UI如何关联”的问题如何解决
软件研发核心问题之在需求拆解过程中,“数据与UI如何关联”的问题如何解决
|
4月前
Element UI 多选表格【翻页多选】全能版(含翻页多选数据反显、toggleRowSelection失效的原因解析和解决方案)
Element UI 多选表格【翻页多选】全能版(含翻页多选数据反显、toggleRowSelection失效的原因解析和解决方案)
254 0