我正在尝试在每个单元格内构建一个带有一些长文本的 UITableView。单元格没有 AccessoryView,除了一个单元格(第 8 个),这是一种打开详细视图的按钮。
考虑这段代码:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGSize size = [[quotes objectAtIndex:indexPath.row] sizeWithFont:16 constrainedToSize:CGSizeMake(self.view.frame.size.width, CGFLOAT_MAX)];
return size.height+20;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 0;
cell.textLabel.text = [quotes objectAtIndex:indexPath.row];
if(indexPath.row==7){
[cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];
}
return cell;
}
它可以工作,但问题是当我滚动到表格的底部(第 8 行也是最后一行)然后我回到上面时,另一个 AccessoryView 被添加到一个随机点(或多或少的第 3 行)单元格,但我不知道它是在里面还是随机漂浮)。是否与iOS的单元重用有关?我怎样才能避免它?
提前致谢。