获取 UITableView 中最近添加的行的 indexPath
Posted
技术标签:
【中文标题】获取 UITableView 中最近添加的行的 indexPath【英文标题】:Get indexPath of recent row add in UITableView 【发布时间】:2013-07-05 09:33:05 【问题描述】:我有一个问题:我想获取最近添加到 UITableView 上的单元格的 indexPath。 这是我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//[_tableView clearsContextBeforeDrawing];
static NSString *simpleTableIdentifier = @"SimpleTableItem";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
cell.tag = indexPath.row;
CGRect frame1 = CGRectMake(10, 25, 80, 10);
UILabel *lbl2= [[UILabel alloc]initWithFrame:frame1];
[lbl2 setFont:[UIFont fontWithName:@"Helvetica" size:8.5]];
[lbl2 setTextColor:[UIColor blackColor]];
[lbl2 setTextAlignment:UITextAlignmentLeft];
lbl2.text = [FileDateArray objectAtIndex:indexPath.row];
[cell addSubview:lbl2];
[lbl2 release];
deleteIndexPath = indexPath.row;
NSLog(@"Delete index:%@",deleteIndexPath);
return cell;
在我的 tableview 上,一次只添加了一行。 当我在控制台上打印时,deleteIndexPath 为空。你有什么建议吗?
【问题讨论】:
您的 deleteIndexPath 类型是什么?是 Int 吗?但是为什么 NSLog 它是对象呢? NSLog(@"%ld",(long)indexPath.row);记录并检查。 @brianLikeApple : 是 NSIndexPath 类型 如何添加新行? @NGOT 如果它是一个 NSIndexPath 类型,那么你不认为你需要像deleteIndexPath = indexpath;
那样使用它
【参考方案1】:
我不清楚你想要什么。我可以假设以下三种可能性。请检查是否有任何你想要的。如果不是,请告诉我您想要哪个索引路径以及您想要访问它的位置。
如果您想获取 tableView 的最后一个索引路径,可以尝试如下:
NSIndexPath *lastIndexPath = [NSIndexPath indexPathForRow:[FileNameArray count] - 1 inSection:0];
这将返回您的 tableview 可能的最后一个索引路径。
如果您想获取可见单元格的索引路径,则可以使用
NSArray *visibleCellIndexPaths = [yourTableViewObject indexPathsForVisibleRows];
如果您想获取最后一个可见单元格的索引路径,则可以使用
[[yourTableViewObject indexPathsForVisibleRows] lastObject];
更新
您想要获取 tableview 第一行的索引路径,而不是使用第一个解决方案只需在行中传递 0。
NSIndexPath *lastIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];
因为行和节的索引都是从 0 开始的。由于您只有一个部分,因此部分的索引为 0,并且您希望获得第一行,因此第一行的索引为 0。
希望对你有所帮助。
【讨论】:
感谢 Kapil Choubisa,我想获取 tableview 中第一行的索引路径。你给我看吗?非常感谢 @NGOT 请检查更新后的答案,如果满足您的要求,请将其标记为已接受的答案。 我写了一个 updatearray 函数,它在 2 秒后调用循环,所以我使用你的代码获取第一行的 indexpath,调用 updatearray 函数后 IIndexPath 发生了变化。所以它不起作用。 无所谓.. 第一行的索引路径将始终为 0,0。但是是的,您的索引路径的单元格将被更改。在这种情况下,您必须存储单元格而不是 indexpath 我想是的,你能告诉我如何存储单元格而不是索引路径吗?非常感谢以上是关于获取 UITableView 中最近添加的行的 indexPath的主要内容,如果未能解决你的问题,请参考以下文章
如何快速获取UITableView中每个动态创建的行的textvalue
用于在 Swift 中删除 UITableView 中的行的编辑按钮不起作用