У меня есть UITableViewCell, который detailTextLabel заставляет фрейм ячеек зависеть от его размера.
Мой код для этого:
ячейка для строки в методе индекса
cell.textLabel.text = @"Rights";
cell.backgroundColor = [UIColor clearColor];
cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.detailTextLabel.numberOfLines = 0;
cell.detailTextLabel.text = [self getItemForKey:kRights];
cell.textLabel.font = [UIFont systemFontOfSize:15];
cell.detailTextLabel.font = cell.textLabel.font;
cell.textLabel.textColor = [UIColor colorWithRed:54.0f/255.0f green:54.0f/255.0f blue:54.0f/255.0f alpha:1.0f];
CGSize constraintSize = CGSizeMake(310.0f, MAXFLOAT);
CGSize labelSize = [[cell.detailTextLabel text] sizeWithFont:[cell.detailTextLabel font] constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
cell.detailTextLabel.frame = CGRectMake( 0, 0, 310, labelSize.height);
cell.userInteractionEnabled = YES;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.accessoryType = UITableViewCellAccessoryNone;
Высота строки в методе индекса
if (indexPath.row == 3){
NSString *text = [self getItemForKey:kRights];
CGSize constraintSize = CGSizeMake(310.0f, MAXFLOAT);
CGSize labelSize = [text sizeWithFont:[UIFont systemFontOfSize:15]
constrainedToSize:constraintSize
lineBreakMode:UILineBreakModeWordWrap];
return labelSize.height+11;
}
Однако, если размер метки слишком велик, ячейки перекрывают друг друга.Пожалуйста, не могли бы вы сказать мне, как я могу предотвратить это?
Вот изображение, чтобы показать вам мою проблему:
http://img689.imageshack.us/i/screenshot2011042102520.png/