博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITableview中怎么找到每个cell
阅读量:6281 次
发布时间:2019-06-22

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

一个朋友问我:我在每个cell中都添加了两个按钮(记为btnA和btnB),点击btnA时,对应的cell中添加一个子控件,再点击btnB时,对应的cell中的子控件就移除,怎么做到?

 

百度了一下,发现了解决办法:

首先,创建btn时,给每个btn加一个tag值

//创建cell方法-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    static NSString * iden=@"iden";    _cell=[tableView dequeueReusableCellWithIdentifier:iden];    if (_cell==nil) {        _cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:iden];    }        UIButton * btnA=[UIButton buttonWithType:UIButtonTypeCustom];    btnA.frame=CGRectMake(0, 0, 50, 20);    btnA.tag = 1000 + indexPath.row;    btnA.backgroundColor=[UIColor greenColor];    [btnA addTarget:self action:@selector(btnBClick:) forControlEvents:UIControlEventTouchUpInside];        [_cell.contentView addSubview:btnA];        UIButton * btnB=[UIButton buttonWithType:UIButtonTypeCustom];    btnB.tag = 2000 + indexPath.row;    btnB.frame=CGRectMake(100, 0, 50, 20);    btnB.backgroundColor=[UIColor redColor];    [btnB addTarget:self action:@selector(btnAClick:) forControlEvents:UIControlEventTouchUpInside];    [_cell.contentView addSubview:btnB];    return _cell;}
1 //添加子控件按钮代码 2 -(void)btnBClick:(UIButton *)btn 3 { 4     NSString * path=[[NSBundle mainBundle]pathForResource:@"1" ofType:@"mp4"]; 5     NSURL * url=[NSURL fileURLWithPath:path]; 6     _mp=[[MPMoviePlayerViewController alloc]initWithContentURL:url]; 7     _mp.view.backgroundColor=[UIColor purpleColor]; 8     _mp.moviePlayer.controlStyle=MPMovieControlStyleDefault; 9     10     _mp.view.frame=CGRectMake(0, 0, self.view.frame.size.width, 200);11     NSIndexPath *indexPath = [NSIndexPath indexPathForRow:btn.tag - 1000 inSection:0];12     UITableViewCell *cell = [_tableView cellForRowAtIndexPath:indexPath];// 竟然还有这个方法,第一次用13     [cell.contentView addSubview:_mp.view];14     [_tableView reloadData];15 }
1 //移除子控件按钮代码 2 -(void)btnAClick:(UIButton *)btn 3 { 4     NSIndexPath *indexPath = [NSIndexPath indexPathForRow:btn.tag - 2000 inSection:0]; 5     UITableViewCell *cell = [_tableView cellForRowAtIndexPath:indexPath]; 6     if ([cell.contentView.subviews containsObject:_mp.view]) { 7         [_mp.view removeFromSuperview]; 8     } 9     else10         return;11 }

给添加了红色的几行代码,就搞定了!

 

我去,这个方法亮了,我已经被闪瞎了!

NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; cell.detailTextLabel.text= [self.dateFormatter stringFromDate:self.pickerView.date];

 

转载于:https://www.cnblogs.com/hyuganatsu/p/eachCell.html

你可能感兴趣的文章
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>