美文网首页iOStableviewiOS开发
华山论剑之iOS&tableView的双剑合璧

华山论剑之iOS&tableView的双剑合璧

作者: 神经骚栋 | 来源:发表于2016-06-25 03:34 被阅读739次

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

示意图

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

相关文章

  • 华山论剑之iOS&tableView的双剑合璧

    对待生活,你用什么的态度对待它,它就会以什么的态度回报你,那么请善待你的生活. 上面的这张图 我相信大家都不会陌生...

  • 双剑合璧

    昨晚的猫仔,一如既往地半夜醒了,“咔”,门开了,有窸窸窣窣的声音,我知道这是猫仔偷偷地溜了进来,等猫仔站定,我开口...

  • 婚姻需要双剑合璧

    当初看《神雕侠侣》总是不明白,金大侠为什么非要给男女主角安排个双剑合璧的情节。 直到今天,看到一篇报道,也是写夫妻...

  • Wide and Deep,双剑合璧

    近两年,机器学习和深度学习(deep learning)在图像领域(Computer Vision),语音识别领域...

  • 双剑合璧之日-20230202

    教授上班之前留下一句话“上午蛋蛋可能会来”!! 什么?!就是那个……破坏力巨大的…蛋哥?哦不是,蛋弟?那个昨天挡着...

  • Virturbox debugger & kgdb 双剑合璧

    通过上一篇的学习,我们已经可以用KGDB调试内核了,但是GDB并不能查看所有寄存器,比如IDTR. 本篇将介绍使用...

  • 不说了,来双剑合璧

    文 ∕ 郭子民 我本写诗人,来从金庸游 01、 完美的武功 《神雕》里最让人激动的一幕,就是一对缠缠绵绵的小情侣,...

  • 双剑合璧,盈利享不停

    一.开通现金港 1.收益可观,客户开通现金港后,空余资金仍可享受数倍于活期利息的收益,空仓也能赚! 2.开市可投资...

  • 第5章 双剑合璧

    找到顾远那辆揽胜,开门进去。这家伙居然在打电话秀恩爱。 “我哥们来了,改天给你介绍认识哦,先挂了,拜拜!”,顾远挂...

  • 【DAY-9】【核聚进步本实战】20180408

    【学习内容】 1、【PPT学习】:玩转多图排版、Excel+ppt双剑合璧,效率提升 2、【英语】:Grit is...

网友评论

  • 皮皮玥宝:能否也给我来一份demo? 15222355675@163.com:relieved:
  • 一念起:如果写两个tableview分别在里面封装数据源方法呢
    神经骚栋:@smmchn 可以的,这个要你自己研究,本来就是条条大路通罗马不是?
  • b632d530de83:栋哥 啥时候写个tabelView 和 collectionView 一起用的demo
    神经骚栋:@快乐吧 你是????
    神经骚栋: @快乐吧 这个没有难度吧?太简单了…
  • Coder大雄:728772017@qq.com,能发份demo
    么博主。谢了
    神经骚栋: @Coder大雄 晚上给你发一份,我可能要找找
    Coder大雄:@神经骚栋 我自己写的时候不是写在一起在,所以最主要还是想看看你的第二种方法
    神经骚栋: @Coder大雄 可以…
  • ad4452b0669d:可否发我一份demo?1045250128@qq.com
    神经骚栋:@iOS_szx 您好,已经把Demo发您邮箱了
    ad4452b0669d:可以,谢谢
    神经骚栋: @iOS_szx 可以的,我现在可能有点忙,最晚明天早上给您发过去一份…可以吗…?
  • f82c8e1dee60:你好!能把你的源码发给我吗?
    1039354824@qq.com
    神经骚栋: @1604班陈星星 已发送,请查收
    f82c8e1dee60: @神经骚栋 谢谢
    神经骚栋: @1604班陈星星 好的
  • iHTCboy:留坑,正真复杂的是左右视图的交互。
    神经骚栋:@iHTCboy 我们既然知道思路了 是不是说根据思路 我们在交互的时候判断是哪个tableView就好呢?
    大侠走一波:@iHTCboy 可不可以用didselected 代理方法更新右边数据源呢
  • code_间特门:思想是有了,再上点代码呗 :relieved:
  • Caiflower:逻辑不复杂的话这样还好,如果逻辑复杂的话,还是分两个控制器比较好吧,每个控制器都管理自己的逻辑,
    神经骚栋: @花菜ChrisCai 是的,程序这种东西就是要根据实际的来嘛
  • 343cea0f7107: 笔者可以写个完整的demo~~ :smile:
  • 蕾蕾是女神:autorelease 左边的表格视图 为什么要autorelease。。
    神经骚栋: @单手两万行无bug 不好意思,失误……
    罗同学_:@神经骚栋 arc下还需要autorelease?
    神经骚栋:@蕾蕾是女神 重用问题,
  • 8ae158dda3f2:嗯,但是if else 看着有点烦
    神经骚栋: @codernevinz 嗯嗯,觉得适合自己就好,不是吗?这都是些细节问题,我们只要知道思路就好😂😂😂😂

本文标题:华山论剑之iOS&tableView的双剑合璧

本文链接:https://www.haomeiwen.com/subject/reyodttx.html