我正在尝试向我的表格单元格添加删除线标签(以 BOOL hasStrikethrough 为条件)。问题是第一次显示表格时没有出现删除线(即使 hasStrikethrough == YES)。如果滚动表格,则行会重新显示,并且删除线会正确显示。删除线只是作为 UITableViewCell 的子视图添加的 UILabel。
这是我的 cellForRowAtIndexPath 代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ItemCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell==nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
Item *item = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = item.itemName;
cell.textLabel.textAlignment = UITextAlignmentLeft;
cell.showsReorderControl = YES;
cell.shouldIndentWhileEditing = NO;
if ([[item hasStrikethrough] boolValue] == YES) {
[self addStrikethrough:cell];
}
return cell;
}
这是 addStrikethrough 的代码:
- (void)addStrikethrough:(UITableViewCell*)cell
{
CGRect frame = cell.textLabel.frame;
UILabel *strikethrough = [[UILabel alloc] initWithFrame:frame];
strikethrough.opaque = YES;
strikethrough.backgroundColor = [UIColor clearColor];
strikethrough.text = @"------------------------------------------------";
strikethrough.lineBreakMode = UILineBreakModeClip;
[cell addSubview:strikethrough];
}
提前致谢 :-)