Перекрытие переноса слов в табличном представлении iOS
Я использую JSON для анализа таблицы. Я использую заголовок и подзаголовок. Я не хочу, чтобы текст исчезал с экрана "...", поэтому я добавил
cell.textLabel.numberOfLines = 0;
cell.detailTextLabel.numberOfLines = 0;
Я вижу, что он переходит на новую строку, но высота ячейки остается неизменной, накладывается на другие и выглядит очень плохо. Как я могу сделать так, чтобы слово переносилось, а высота увеличивала количество контента в нем?
Заранее спасибо.
Ответ на первый ответ: я вставил код метода UITableViewDelegate, и я получил это:
2013-08-27 15:29:40.940 jsonParse[2392:c07] -[__NSCFDictionary
sizeWithFont:constrainedToSize:lineBreakMode:]: unrecognized selector sent to instance 0x7580130
2013-08-27 15:29:40.942 jsonParse[2392:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary sizeWithFont:constrainedToSize:lineBreakMode:]: unrecognized selector sent to instance 0x7580130'
*** First throw call stack:
(0x1c93012 0x10d0e7e 0x1d1e4bd 0x1c82bbc 0x1c8294e 0x333a 0x1f9c4e 0x1fc224 0xc0952 0xc02dc 0x2927 0xbd6589 0xbd4652 0xbd589a 0xbd460d 0xbd4785 0xb21a68 0x4615911 0x4614bb3 0x4652cda 0x1c358fd 0x465335c 0x46532d5 0x453d250 0x1c16f3f 0x1c1696f 0x1c39734 0x1c38f44 0x1c38e1b 0x1bed7e3 0x1bed668 0x14ffc 0x1dad 0x1cd5 0x1)
libc++abi.dylib: terminate called throwing an exception
1 ответ
Реализуйте этот метод UITableViewDelegate для определения высоты каждой строки во время выполнения и соответствующим образом измените код
NSString *object = [DataArray objectAtIndex:indexPath.row];
CGSize size = [object sizeWithFont:[UIFont systemFontOfSize:[UIFont systemFontSize]] constrainedToSize:CGSizeMake(300, 9999) lineBreakMode:NSLineBreakByWordWrapping];//set the textLable Frame width according to your layout width.
CGFloat height = size.height+20;//you can set the padding accordingly
return height;
}
Отредактировано для конкретного ответа
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *title = [[articles objectAtIndex:indexPath.row] objectForKey:@"title"];
NSString *desc = [[articles objectAtIndex:indexPath.row] objectForKey:@"desc"];
CGSize titleSize = [title sizeWithFont:[UIFont boldSystemFontOfSize:18.0] constrainedToSize:CGSizeMake(300, 99999) lineBreakMode:NSLineBreakByWordWrapping];
CGSize descSize = [title sizeWithFont:[UIFont systemFontOfSize:14.0] constrainedToSize:CGSizeMake(300, 99999) lineBreakMode:NSLineBreakByWordWrapping];
return titleSize.height+descSize.height+10;
}