我记录信息并按如下方式调整标签大小:
NSLog([NSString stringWithFormat:@"before: %@, %f", [item valueForKey:@"item"], itemDescLabel.frame.size.width]);
[itemDescLabel sizeToFit];
NSLog([NSString stringWithFormat:@"after: %@, %f", [item valueForKey:@"item"], itemDescLabel.frame.size.width]);
一开始是正确的,记录数据如下
before: Nachos, 280.000000
after: Nachos, 265.000000
before: Quesadilla, 232.000000
after: Quesadilla, 229.000000
但在上下滚动之后,标签显然会太宽或太窄,它会记录如下数据
before: Nachos, 0.000000
after: Nachos, 967.000000
before: Quesadilla, 171.000000
after: Quesadilla, 167.000000
我使用apple建议的方法从nib加载自定义uitableviewcell,比如
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"ItemCell" owner:self options:nil];
cell = itemCell;
itemCell = nil;
}
UILabel *itemDescLabel = (UILabel *)[cell.contentView viewWithTag:1];