我记录信息并调整标签大小,如下所示:
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]);
Run Code Online (Sandbox Code Playgroud)
起初它是正确的并记录数据,例如
before: Nachos, 280.000000
after: Nachos, 265.000000
before: Quesadilla, 232.000000
after: Quesadilla, 229.000000
Run Code Online (Sandbox Code Playgroud)
但上下滚动后,标签显然会太宽或太窄,并且它记录的数据如下
before: Nachos, 0.000000
after: Nachos, 967.000000
before: Quesadilla, 171.000000
after: Quesadilla, 167.000000
Run Code Online (Sandbox Code Playgroud)
我使用 Apple 建议的方法从笔尖加载自定义 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];
Run Code Online (Sandbox Code Playgroud)
在调用 sizeToFit 之前,我需要重置 UILabel 框架的大小。单元格被重用以节省内存,并且当frame.size不是标签的原始尺寸时,显然sizeToFit有时会搞砸。我不知道为什么会这样,但它确实有效。
| 归档时间: |
|
| 查看次数: |
1884 次 |
| 最近记录: |