博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
华山论剑之iOS&tableView的双剑合璧
阅读量:7236 次
发布时间:2019-06-29

本文共 1852 字,大约阅读时间需要 6 分钟。

对待生活,你用什么的态度对待它,它就会以什么的态度回报你,那么请善待你的生活.

上面的这张图 我相信大家都不会陌生,因为这就是一张外卖App的一张图,左边一栏是"寿司,小菜,其他,就睡,套餐"右边怎么具体的详情实物列表,如果我们需要做出这样的效果,设计的思路是怎么样的?

其实这就是一个控制器中如何展现两个tableView的问题的具体化,我们都知道通常情况下,一个控制器只能有一个tableView,因为一个控制器只能实现一个数据源方法.下面有两种解决方案.具体使用哪一种,根据实际情况而定.

    1. 如果需要一个控制器中含有两个tableView,我们可以先创建两个控制器,每一个控制器添加上一个tableView,并且添加tableView的代理方法和数据源方法.然后把两个带有tableView的控制器使用addSubView,添加到主控制器对应的显示位置就可以了,当然了,这种方法理解起来很简单,但是比较麻烦,如果我们需要的tableView过多,那么我们的代码量增加的可不是一点半点.
  • 2.第二种方法就是本篇博文所讲的方法,既然,一个控制器中只能添加一个数据源方法,那么我们在数据源方法中添加一个判断,判断是哪一个tableView的数据源就可以了,相比于上面的一个解决方案,代码量大大的减少,而且易于维护.

那么,我们看一下,具体代码是如何实现的吧,代码的实现很简单,首先我们需要创建出两个全局的tableView,然后在数据源进行判断是从哪一个tableView进入数据源方法,根据进入的不同加载不同的数据源就可以了.

 @interface ViewController (){    UITableView *leftTableView;    UITableView *rightTableView;}@end#pragma - mark ----- TableView Datasouce -----(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    if ([tableView isEqual:leftTableView]) {        return 14;    }    else if ([tableView isEqual:rightTableView])    {        return 10;    }    return 0;}-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    if ([tableView isEqual:leftTableView]) {        static NSString *identifier = @"myCell";        LeftCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];        if (!cell) {            cell = [[LeftCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];        }        return cell;    }    else if ([tableView isEqual:rightTableView])    {        static NSString *identifier = @"mycell";        RightCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];        if (!cell) {            cell = [[RightCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];        }        return cell;    }    return nil;}复制代码

转载地址:http://epgfm.baihongyu.com/

你可能感兴趣的文章
黑客可通过 USB 3.0 端口完全控制使用英特尔第六/七代处理器的PC
查看>>
大数据特区风起张北“中国数坝”
查看>>
制造企业要如何正确看待大数据?
查看>>
大数据计算架构三国争霸胜负未明
查看>>
数据中心布线系统构成及不同规模范例
查看>>
小心升级!iOS 10.2可能会让更多iPhone突然关机
查看>>
李开复:AI 创业的十个真相 | 深度
查看>>
Windows 10可能会限制你的网速,如何改变或提速?
查看>>
Apache Kylin优化之—Cube的高级设置
查看>>
以静制动的TensorFlow Fold
查看>>
IT管理中的安全痛点及解决方法
查看>>
《VMware Virtual SAN权威指南(原书第2版)》一1.6 从管理员角度来看VSAN的样子...
查看>>
全球区块链商业理事会中国中心成立,推动全球区块链共识教育
查看>>
话说数据中心里的软件定义
查看>>
语音识别谁最强?微软宣称错误率全球最低
查看>>
IT必读:OA中如何制作转正申请单
查看>>
从和颐酒店事件来看地方安防标准的作用
查看>>
特朗普要筑“墙”硅谷外籍精英看重墙上的“门”
查看>>
美国黑客迷上"黑"医院 信息安全如何保障?
查看>>
拯救脆弱的智慧城市:不但要“智商” 还得有“生气”
查看>>