我正在尝试在实例变量中捕获UILabel的高度。我使用的是默认样式UITableViewCellStyleValue2
。
截至目前,我尝试在
中创建单元格时捕获高度- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
代码(为了简洁,跳过了deque'd的东西):
UITableViewCell *testCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:@"myCell"] autorelease];
testCell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;
testCell.detailTextLabel.numberOfLines = 10;
testCell.selectionStyle = UITableViewCellSelectionStyleNone;
testCell.textLabel.text = @"LabelName";
testCell.detailTextLabel.text = [object valueForKey:@"key"];
[testCell.detailTextLabel sizeToFit]; //still says 0.00 :-(
labelHeight = testCell.detailTextLabel.bounds.size.height;
NSLog(@"testCell height is %f", testCell.detailTextLabel.bounds.size.height); // equals 0.00
NSLog(@"cellFrame is %f", testCell.frame); //also says 0.00
return cell;
NSLog
表示身高为0.00。
那么,抓住标签高度的好地方在哪里?或者,我错过了什么?我认为在分配detailTextLabel
时会设置[someObject valueForKey:theKey]
边界。谢谢!
编辑:完整代码。
答案 0 :(得分:1)
请在cellForRowAtIndexPath中发布所有代码。 我怀疑你没有给detailTextLabel一个非零的框架(或边界)。 您还可以NSLog the cell.frame来查看它的宽度和高度。
答案 1 :(得分:0)
在分配[cell.detailTextLabel sizeToFit]
之前,您是否尝试过调用labelHeight
?我的理解是标签将在那个时候调整大小,你应该得到一个非零值(假设文本不是空的。)