外部获取IndexPath的几种方式(关联对象等)
来源:互联网 发布:3d心形程序c语言 编辑:程序博客网 时间:2024/05/19 00:37
一、单击某个cell中的button获取indexPath
1、 一般方式
- (void)buttonAction:(UIButton *)sender { UITableViewCell *cell = (UITableViewCell *)[[sender superview] superview]; NSIndexPath *indexPath = [_tableView indexPathForCell:cell]; NSLog(@"indexPath is = %i",indexPath.row); }
2、runtime添加属性方式,即关联对象的方式
//runtime 关联对象 这种方式首先引入#import <objc/runtime.h> - (UITableViewCell *)tableView:(UITableView *)tableVie cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *identiStr = @"cellID"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identiStr]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identiStr]; UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(0, 0, 100, 33); [button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside]; [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; button.tag = 110 + indexPath.row; [cell.contentView addSubview:button]; } UIButton *button = (UIButton *)[cell.contentView viewWithTag:110]; //runtime 关联对象 objc_setAssociatedObject(button, @"button", indexPath, OBJC_ASSOCIATION_ASSIGN); [button setTitle:dataSource[indexPath.row] forState:UIControlStateNormal]; return cell; } //事件触发 runtime 获取关联的对象 - (void)buttonAction:(UIButton *)sender { //runtime 获取关联的对象 UITableViewCell *cell = objc_getAssociatedObject(sender, @"button"); NSIndexPath *indexPath = [_tableView indexPathForCell:cell]; NSLog(@"indexPath is = %ld",indexPath.row); }
二、已知具体row,获取indexPath
- (void) refreshLessTime{ for (int row = 0; row < leftTimeArr.count; row ++) { NSIndexPath *indexPath = [NSIndexPath indexPathForItem: row inSection:0]; UITableViewCell *cell = (UITableViewCell *)[_tableView cellForRowAtIndexPath:indexPath]; UILabel *remainingTimeLabel = (UILabel *)[[cell.contentView viewWithTag:500] viewWithTag:501]; remainingTimeLabel.text = [leftTimeArr objectAtIndex:indexPath.row]; }}
0 0
- 外部获取IndexPath的几种方式(关联对象等)
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- Jquery 获取对象的几种方式
- UITableView获取cell的indexPath.row值(多种方式)
- Database,Uva1592
- [Playframework+JPA+mysql] 数据更新与删除
- 我的ACM艰辛之路,求罩
- Android Studio implements 一个类后如何实现这个类的方法
- 蓝桥杯 表达式计算 By Assassin
- 外部获取IndexPath的几种方式(关联对象等)
- Java泛型通配符<? extends T>与<? super T>
- Linux 内核开发
- python修改编辑器字体大小(Mac)
- keras imdb.py源码错误
- Android中涉及数据结构和算法的工具类
- 阿里云申请云盾免费证书(https)
- VMware虚拟机中Ubuntu输入密码登陆后桌面黑屏的解决方法
- vue1.0学习总结