ios cell-学生党求教啊 关于IOS TableViewCell

问题描述

学生党求教啊 关于IOS TableViewCell

{
NSIndexPath *seletedRow;
NSIndexPath *currentRow;
NSIndexPath *pastRow;
UITableViewCell *pastCell;
NSMutableArray *_datalist;
}

@end

@implementation ViewController

  • (void)viewDidLoad
    {
    [super viewDidLoad];
    _datalist=[NSMutableArray arrayWithObjects:@"A",@"B",@"C",@"C",@"C",@"C",@"C", nil];
    }
  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {

    return _datalist.count;
    }

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//记录上一个Cell

static NSString *cellIdentifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (cell==nil) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}

cell.textLabel.text = [_datalist objectAtIndex:[indexPath row]];

//调用点击cell这后进行的条件判断(抽取到一个方法中)
[self selectCondition:cell indexPath:indexPath];

return cell;

}

  • (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {

    currentRow = indexPath;
    NSArray *indexPathArray = [NSArray arrayWithObject:indexPath];
    [tableView reloadRowsAtIndexPaths:indexPathArray withRowAnimation:UITableViewRowAnimationMiddle];

}

-(void)selectCondition:(UITableViewCell *)cell indexPath:(NSIndexPath *)indexPath
{
//获取上一个cell,然后再将上一个cell隐藏的控件显示出来
if (pastRow != nil && ![pastRow isEqual:cell]) {

    pastRow = nil;
}

//再次选中该行隐藏这个view
if ([currentRow isEqual:seletedRow]) {
    NSLog(@"[currentRowAtIndexPath isEqual:seletedRowAtIndexPath]   条件成立     cellForRowAtIndexPath");
    //再次点击的时候,将所有的记录行号的信息全部消除
    seletedRow = nil;
    currentRow = nil;
    pastRow = nil;

}

//选中一行加载一个view
if (currentRow !=nil && [currentRow isEqual:indexPath]) {

    //点击了就记录当前的cell,用于下一次点击的时候调用
    pastCell = cell;
    NSLog(@"past的测试:%@",pastCell);
    seletedRow = currentRow;
    pastRow = indexPath;

    //调用子控件设置的方法
    [self setSubViewAndButton:cell];
}

}

  • (void)setSubViewAndButton:(UITableViewCell *)cell
    {

    //展开的时候创建uiview
    UIView *view = [[UIView alloc]init];
    view.frame = CGRectMake(0, 50, self.view.frame.size.width, 50);
    //view.backgroundColor=[UIColor grayColor];
    //view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"back.jpg"]];
    view.backgroundColor = [UIColor yellowColor];
    [cell.contentView addSubview:view];

    NSLog(@"currentRowAtIndexPath !=nil && [currentRowAtIndexPath isEqual:indexPath] 条件成立 cellForRowAtIndexPath ");
    //在动态创建的view上面添加想要的子控件(uibutton,可以设置文字,可以设置背景图片)
    //呼叫按钮
    UIButton *btn = [[UIButton alloc] init];
    //[callOutButton setTitle:@"呼叫" forState:UIControlStateNormal];
    //[btn setBackgroundImage:[UIImage imageNamed:@"cat.png"] forState:UIControlStateNormal];
    btn.frame = CGRectMake(20, 5, 30, 30);
    //callOutButton.backgroundColor = [UIColor redColor];
    [view addSubview:btn];

    //给view内部的按钮设置外部的访问接口(看需不需要)
    //给按钮添加监听事件
    [btn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
    }

  • (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    NSLog(@"heightForRowAtIndexPath");

    if (currentRow !=nil && [currentRow isEqual:indexPath]) {
    if ([currentRow isEqual:seletedRow]) {
    tableView.scrollEnabled = YES; //点击以后:合并起来tableview可以滚动
    return 50;
    }
    tableView.scrollEnabled = NO; //点击之后:展开后tableview不可以滚动
    return 100;
    }
    return 50;
    }

  • (void)btnAction:(UIButton *)button
    {
    NSLog(@"////");

    [_datalist removeObjectAtIndex:currentRow.row];
    [self.MyTable deleteRowsAtIndexPaths:[NSArray arrayWithObject:currentRow] withRowAnimation:UITableViewRowAnimationLeft];
    }

各位大大,这是我自己做的一个可以点击Cell 改变宽度的DEMO 。 点击了可以实现下拉出一个View 再点击能收起来。点击另外一个Cell自动把上一个Cell收起隐藏,Xcode5.0的时候还好好的 ,升级5.1 点击Cell 不能实现Cell 的收起隐藏了,小弟这两天弄这个急死了,有大神能帮我看看是不是代码有问题,还是升级了Xcode 5.1 的问题啊? 在线等啊,急死了

时间: 2024-11-05 14:58:46

ios cell-学生党求教啊 关于IOS TableViewCell的相关文章

ios开发数据存到云端,学生党求大神指教

问题描述 ios开发数据存到云端,学生党求大神指教 现在参加一个老师的项目,用户名密码等数据怎么同步到SRD云数据库啊,还是不能同步到上面,直接存在云端,希望能给一个思路啊 解决方案 没人吗..

未来发展-大二计算机学生诚心求教未来方向

问题描述 大二计算机学生诚心求教未来方向 在一个不知名的二本院校读网络工程,学了c语言,半本数据结构,现在在上Acm..网站设计与开发,和计算机组成原理,还有计算机网络.真的,我应该往什么方向去努力? 解决方案 计算机学生的未来计算机学生的未来 . 解决方案二: 可以学习下j2ee+android+swift+ios 解决方案三: 去看看我博客作为参考吧 我大三 解决方案四: 学校,是学习学的方法 解决方案五: 其实,你学的这些每一个课程精通了,都了不起的,关键你想做哪个?比如算法,掌握不错,可

学生党如何拿到阿里技术offer:《阿里实习生面试经验(成功)》

上次的博文为大家分享了一篇来自成功拿到阿里offer的研究生学姐的面试经验,其实阿里每年都会为大三或者研二这样的在校学生提供实习生的机会,不久之前还在微信中看到阿里淘宝招聘实习生的微信文章,虽然毕业实习对于我而言还有一段时间,但是我怀着好奇的心情进点进入看了看(没办法,从小好奇心爆棚,从大一开始就在学校里蹭各种专业相关的宣讲会,比方说中科院计算所,阿尔法特朗讯,科大讯飞之类的,只要感兴趣并且没课,我就会默默地坐在一群要毕业的怀揣简历的学长中间-并且默默记下他们的技术要求,毕竟"学不到老,就活不到

《iOS App界面设计创意与实践》——iOS开发工具和资源

iOS开发工具和资源iOS App界面设计创意与实践设计和开发iOS应用程序的好处之一是,提供给你的工具和资源的质量和数量.苹果公司在开发工具方面做得很好,提供了专用于创建iOS应用程序的开发工具.此外,苹果公司为iOS软件开发工具包(SDK)和iOS应用程序编程接口(API)编写了大量的文档和参考资料.可以用来设计和开发iOS应用程序的4个主要工具如下: Xcode: Interface Builder: iOS Simulator: Instruments. DevNote_AppIcon1

深度学习在 iOS 上的实践 —— 通过 YOLO 在 iOS 上实现实时物体检测

本文讲的是深度学习在 iOS 上的实践 -- 通过 YOLO 在 iOS 上实现实时物体检测, 原文地址:Real-time object detection with YOLO 原文作者:Matthijs Hollemans 译文出自:掘金翻译计划 译者:Danny Lau 校对者:Dalston Xu ,DeepMissea 深度学习在 iOS 上的实践 -- 通过 YOLO 在 iOS 上实现实时物体检测 译者注: 在阅读这篇文章之前可能会遇到的一些名词,这里是解释(我自己也查了相当多的资

学生党成功拿到阿里技术offer:面Java开发,却是C++考官,几个意思?

作为一枚计算机软件专业的学生党,从进入大学校园的第一门课程<职业发展概论>上就明白一个道理:"在计算机软件行业,学不到老那就活不到老".我们的专业是当下世界中发展最快的,我们不得不紧跟时代的脚步,不断学习,只有站在行业的前沿,才能保证自己不被行业淘汰. 双十一时,宿舍里全线熬夜往购物车里加商品还在讨论,"阿里的服务器不能爆了吧-",买完商品后,宿舍里一群作为软件攻城狮的我们就开始躺在床上脑补,从"哎,什么技术能让天猫接受这么大的高并发量?&qu

学生党如何拿到阿里技术offer: 《阿里巴巴常考面试题及汇总答案(Java方向)上篇》

之前和大家分享了几位学长学姐们在阿里面试的经验,他们其中有成功的,也有留下遗憾的.但是总之,我认为作为技术人员,首先打铁需要自身硬,在学校里不光要学精学透基础的专业知识,还要有过硬的编程能力,当然我们所谓的计算机软件的科班出身更不能将自己定位为所谓的程序而应该是软件攻城狮-这样我们要对自己有一个比较高的要求,记得有一个计算机大牛曾说过"Talk is cheap,show me the code!",的确与其空谈,不如实干,多看书,多思考,多动手编程,多参与项目实践. 好了,今天就不多

c语言基础-真的很着急,大一学生党,求大神指导写一个c语言拨号程序

问题描述 真的很着急,大一学生党,求大神指导写一个c语言拨号程序 能显示出通讯录中所有人姓名,当选中某个姓名时,屏幕上模拟打字机效果依次显示出此人的电话号码中的各个数字,并伴随相应的拨号声 解决方案 http://zhidao.baidu.com/link?url=svF4fjRTNuBmCJyCiRipzB_21UO5zvNc0hCye7qj8nxOY1lC78667ycDqYnJ7xHiGT00M4NuYqGIak2R5cEU961mjRl1ADLf-Eh1nDKpiBi

学生党如何拿到阿里技术offer: 《2016阿里巴巴校招内推offer之Java研发工程师(成功)》

大学里有这样一句话"现在流的泪,都是当初选专业是脑子进的水",从见闻中了解很多中学非常优秀的同学因为选择了自己不喜欢不感冒的专业,很多人不懂得为自己寻找方向,而是继续延续应试教育下的学习方式,这样,他们的学习便成为了"面向考试"的学习,当他们走出大学校门,往往会发现,自己出了成绩单上的几个数字之外收获甚少.   但其实学习的主动权就在自己手中,你不喜欢自己的专业,但是你可以为自己选择未来的路.在计算机互联网行业,不是科班出身但是取得辉煌成就的人大有人在,问及为什么不