有一个自定义单元格。里面有两个标签。其中一个名为 nameLabel 的高度必须动态变化。有时可以是 1,2 或 3 行。但是这些行是相互的,它们穿过自己的行线。我怎么解决这个问题?
标签和自定义单元格对象的使用自动布局选项被禁用。标签高度必须动态改变,然后是CustomCell。然后是 tableRow。我的头很混乱。为什么我看不到 CustomCell 的背景颜色正在改变?
谢谢
这是我的代码:
- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
UILabel *label = [[UILabel alloc] init];
label.numberOfLines = 0; // allows label to have as many lines as needed
label.text = [[self.dataList objectAtIndex:indexPath.row] objectForKey:@"NAME"];
CGSize labelSize = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(320, 63) lineBreakMode:NSLineBreakByWordWrapping];
CGFloat h = labelSize.height;
NSInteger x=0.0;
if (h==63.0) x=30;
if (h==42.0) x=20;
if (h==21.0) x=10;
return h+30;
}
- (UITableViewCell*)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellID = @"cellid";
CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:cellID];
if (cell == nil)
{
cell = (CustomCell*)[[[NSBundle mainBundle]
loadNibNamed:@"CustomCell" owner:nil options:nil]
lastObject];
}
// customization
NSDictionary *d = [self.dataList objectAtIndex:indexPath.row];
cell.nameLabel.text = [d objectForKey:@"NAME"];
cell.cityLabel.text = [d objectForKey:@"CODE"];
cell.indexPath = indexPath;
return cell;
}
在此链接上有自定义单元的模拟器和 xib 的图片,可以轻松理解问题: http ://compfreek.wordpress.com/2013/08/14/custom-cell-for-table-row-height-changes-动态的/