Существует специальная ячейка. В нем есть две метки. Один из них, названный именем nameLabel, должен динамически меняться. Иногда это может быть 1,2 или 3 строки. Но строки находятся на eachother, они пересекают свои строки строк. Как я могу решить эту проблему?Изменение динамической высоты для строк таблицы, CustomCell и макета
Этикетки и Пользовательский объект ячейки Использование опции Автоотключение отключено. Высота метки должна меняться динамически, а затем CustomCell's. А потом 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 на заказ Cell, чтобы понять легко проблему: http://compfreek.wordpress.com/2013/08/14/custom-cell-for-table-row-height-changes-dynamic/
Спасибо за ответ. Осталось только одно. Я создал ярлыки в xib. Итак, как я могу установить высоту, которая заставляет его знать изменение динамического? –
Прежде всего, вам нужно установить высоту для рамки вашего ярлыка, см. Мой код, который я установил в «- (void) layoutSubviews» метод –
сделал и попытался ..? –