iOS列表控件TableView

今天学习了TableView的一些使用方法,总体来说和Android的listview大致的结构是差不多的,主要是内部使用的方法有一些比较大的区别

TableView的使用

首先在storyboard中拖拽铺满TableView,创建一个继承UITableView的类后,重写init方法,在storyboard绑定类后重写以下三个方法(必须)

  • numberOfSectionsInTableView: 告知视图,有多少个section需要加载到table里
  • tableView:numberOfRowsInSecion:  告知controller每个section需要加载多少个单元或多少行
  • tableView:cellForRowAtIndexPath: 返回UITableViewCell的实例,用于构成table view.

接着在storyboard中拖进Table View Cell,在右边菜单Identifiel给其一个id,这次案例给其id为”cell”

在Table View Cell上方拖进label,用于显示文字,后在label右边菜单View栏中Tag改为1

实现UITableViewDelegate接口,在init方法中self.dataSource = self

给TableView提供相应的数据

之后修改上面重写三个方法传入参数即可

屏幕快照 2015-11-14 19.49.23屏幕快照 2015-11-14 21.35.57

这时一个简单的TableView就显示了出来,接下来再对其进一步修改

创建多个Section列表

屏幕快照 2015-11-14 21.46.17

从iOS设置中看到的setting列表中每一块即为一个section

其中刚才写的numberOfSectionsInTableView方法返回的参数就是为了告知视图TableView中有几个section

  • tableView:titleForHeaderInSection :给每一个section指明一个标题

使用这个方法即可设置标题

新建一个Resource文件,选择Property List,写入数据。屏幕快照 2015-11-14 22.01.42注意类型

定义一个NSDictionary变量后获取上述文件内容,之后改变各个方法传入返回的参数,达到右图效果

屏幕快照 2015-11-14 20.33.42副本屏幕快照 2015-11-14 22.05.43

实现列表交互

首先实现UITableViewDelegate接口

接着在init方法中传入self.delegate = self

  • tableview:didSelectRowAtIndexPath :TableView中sell的触发事件方法

这个方法有点类似Android中listview的点击监听器,同样将要实现的功能写入方法中则可以达到想要的效果

在上述代码中加入此方法后则完成点击触发事件

屏幕快照 2015-11-14 22.58.17

每次点击tableview后控制台出现的效果:

屏幕快照 2015-11-14 23.01.09

 

 


2 条评论

昵称
  1. jie

    一次性更了两篇….好快

  2. 菠萝小莫

    看这个方向 一定是想赶快将星名片移植到iOS上:)