1

我已经在情节提要中设置了一个带有原型单元格的表格视图。现在我想编辑单元格的子视图,如果它被滑动,所以我实现了委托方法 tableView:willBeginEditingRowAtIndexPath:。如何从该方法中获取正在编辑的当前单元格?如果我使用 tableView:cellForRowAtIndexPath: 我会得到一个新单元格,而不是我需要的单元格,因为随后对 dequeueReusableCellWithIdentifier:forIndexPath: 的调用似乎为相同的标识符和 indexPath 返回不同的对象。

我可以使用以下代码轻松重现此行为:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
    NSLog(@"cell = %@", cell);
    cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
    NSLog(@"different cell = %@", cell);
}

那么当我不能使用这个方法时,如何获取当前放置在特定 indexPath 的单元格呢?我正在使用 iOS 6。

4

3 回答 3

4

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath

UITableView

于 2013-05-29T10:43:22.363 回答
2

使用它来访问单元格并对其进行修改:

   NSIndexPath *indexPath = [NSIndexPath indexPathForRow:your_row inSection:your_section];
    UITableViewCell *currentCell = [you_table cellForRowAtIndexPath:indexPath];
    id anySubview = [currentCell viewWithTag:subview_tag]; // Here you can access any subview of currentcell and can modify it.

希望它可以帮助你。

于 2013-05-29T10:46:59.193 回答
0

这对我来说也有点混乱。因为我不知道它是新创建的还是现有的。对于那种情况,我使用

- (NSArray *)visibleCells

UITableView 的方法。并从该数组中获取。为了确定我正在寻找哪个标签属性,或者我将 indexpath 属性添加到在cellForRowAtIndexPath:方法中设置的单元格中。如果单元格不在数组中,则无论如何它都是不可见的,并且将cellForRowAtIndexPath:在用户滚动时使用方法创建。

于 2013-05-29T10:50:36.677 回答