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

上面的这张图 我相信大家都不会陌生,因为这就是一张外卖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;
}复制代码

华山论剑之iOStableView的双剑合璧相关推荐

  1. vim 双剑合璧,天下无敌(笔记)

    技巧 12:双剑合璧,天下无敌 参考:Vim 实用技巧 - Practical Vim 操作符 + 动作命令 = 操作 d{motion}命令可以对一个字符(dl),一个完整单词(daw),一个段落( ...

  2. IDA+OD双剑合璧=逆向无敌

    标 题: [原创]IDA+OD双剑合璧=逆向无敌 作 者: Tennn 时 间: 2015-12-12,22:25:19 链 接: http://bbs.pediy.com/showthread.ph ...

  3. MarkDown、Vim双剑合璧

    作为一名软件攻城狮(是的,我从来都以攻城狮自居! 我坚信如今的每一天,都在朝攻城狮迈进.虽然被菜鸟的肉身皮囊裹着,我依然还是怀着攻城狮的内心! 我非常讨厌别人喊我程序猿.虽然这是不争的事实!).... ...

  4. 蚂蚁金服与阿里云“双剑合璧”,加速释放金融科技时代新红利

    作为一个参加了N届云栖大会的老司机,前段时间在收到2019云栖大会的邀请后,马上就去阿里云官网"溜达"一下,看看是不是会有"剧透".不出所料,竟然发现蚂蚁金服的 ...

  5. Spring Cloud Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)

    文章目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashbo ...

  6. OpenCL专题04:ViennaCL与Eigen双剑合璧

    前言 大家都爱用Python,很大程度是因为Python有非常丰富好用的扩展包,比如Numpy.Matplotlib.Pandas等.特别是Numpy,为科学计算提供了基础支撑,使得Python具有类 ...

  7. Kafka和Flink双剑合璧,Confluent收购Immerok引起业内广泛讨论

    2023年开年开源界就出了一个大新闻,1月6日Kafka的商业化公司Confluent创始人宣布签署了收购 Immerok 的最终协议,而Immerok是一家为 Apache Flink 提供完全托管 ...

  8. 揭秘udesk智能质检:质检+分析双剑合璧

    质检是什么 随着市场的成熟与规范,客户都越来越理性.一单完成之后仅仅是服务的开始,重视客户后续体验感才能够保证服务长久.只有跟客户注重服务细节,保持信任才能成为朋友,才能有长远的收益.越来越多的企业需 ...

  9. 双剑合璧保障数据库安全

    烽火台已经和大家接触了有段日子了,相信通过前面十几台的介绍,大家已经对它的功能.特点有了比较深的了解.今天的主题是数据库安全,借着这个机会给大家介绍下我们的烽火台和锐御WAF如何双剑合璧来保障数据库安 ...

最新文章

  1. 开源一个上架App Store的相机App
  2. linux 新开窗口到最前,怎么设置一个窗口总是在电脑桌面的最前
  3. 腾讯邓君:《王者荣耀》翻过的同步技术相关的三座大山
  4. gparted在线扩分区大小
  5. SAP CRM Fiori应用Appointment startup parameters - 启动参数
  6. 妹子每天加班1分钟,半年崩溃!向公司索赔55万!
  7. route 更改网络设置
  8. 详述MySQL事务的实现原理
  9. 磁盘不见了只剩一个c盘_教你如何处理只剩一个C盘
  10. 技术揭秘QQ空间”自动转发不良信息
  11. 绘画软件:krita for Mac
  12. C#使用欧姆龙PLC的Fins协议读写PLC地址(基本封装)
  13. Java 总结4 数据流 文件处理
  14. 学习Windows Phone 8开发资料汇总
  15. 修改flinksql已经定义表的表结构
  16. Chemical Peel Treatment For Acne Scars
  17. 人类又被AI碾压,这次是星际争霸
  18. Virtualbox源码分析22 NEM(Hyper-V兼容)3 Emulation Thread
  19. 计算机插入的图片怎么改成线条格式,电脑把CAD转化为JPG格式后图片不清晰怎么办...
  20. 探岳车型编码_探岳这个车有钥匙编码吗?

热门文章

  1. stg游戏c语言,坦克大战改版
  2. 2021年斯坦福AI指数报告重磅出炉!中国AI期刊影响力首超美国,视频处理是新风口
  3. 机器学习博士自曝:实验室「阉割」我的创造力,劝你别读
  4. 为什么一些现有成熟客户不愿意上S/4
  5. 10万视频,所有图像均获授权,Facebook创建大规模Deepfake数据集
  6. AI 世界的硬核之战,Tengine 凭什么成为最受开发者欢迎的主流框架?
  7. Facebook成功打破纸牌游戏Hanabi的AI系统得分纪录
  8. 阿布扎比成立全球首所培养研究生的人工智能大学
  9. 李开复:旗下AI公司或在2021年上市,估值至少10亿美元
  10. 人工智能下一个前沿:可解释性