【发布时间】:2011-09-01 10:56:22
【问题描述】:
下面的代码具有确定 UILabel 帧大小的代码,我认为它确实有效,但是当我将它放在 UItable 的 rowAtIndexPath 中时,我得到了不稳定的结果。
也许,我不完全理解reuseIdentifier 是如何或做什么的,但是我只在单元格为nil 时放置了代码来计算框架。发生的情况是仅计算前三个单元格的高度,然后按顺序重复其余单元格的高度。例如,单元格一的高度用于单元格四的高度。
也许有人可以指出我应该如何设置计算的正确方向。
谢谢!
if(cell == nil){
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:DisclosureButtonCellIdentifier] autorelease];
//start adding custom subviews to the table cell
//addSubview for Description
UILabel *descValue = [[UILabel alloc] init];
NSString *descString = rowData.summary;
CGSize maximumSize = CGSizeMake(185, 130);
UIFont *descFont = [UIFont fontWithName:@"HelveticaNeue" size:12];
CGSize descStringSize = [descString sizeWithFont:descFont
constrainedToSize:maximumSize
lineBreakMode:descValue.lineBreakMode];
CGRect descFrame = CGRectMake(125, 60, 185, descStringSize.height);
descValue.frame = descFrame;
descValue.backgroundColor = [UIColor redColor];
descValue.font = descFont;
descValue.tag = kDescriptionValueTag;
descValue.lineBreakMode = UILineBreakModeWordWrap;
descValue.numberOfLines = 0;
[cell.contentView addSubview:descValue];
[descValue release];
}
UILabel *desc = (UILabel *)[cell.contentView viewWithTag:kDescriptionValueTag];
desc.text = rowData.summary;
【问题讨论】:
标签: iphone objective-c ios cocoa-touch