У меня есть табличное представление, и я хочу отображать несколько строк для текста в ячейках. Я попробовал следующий код и изменил высоту, но текст не сломался, а вторая строка не появилась. У вас есть какие-то сведения о том, что я делаю неправильно?Отображение нескольких строк в ячейке таблицы
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil)
{
cell = [[UITableViewCell alloc]
initWithStyle: UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSString *myString = [_menuItems objectAtIndex:[indexPath row]];
UILabel *settingsLabel = (UILabel *)[cell viewWithTag:201];
settingsLabel.text = myString;
settingsLabel.lineBreakMode = NSLineBreakByWordWrapping;
settingsLabel.numberOfLines = 0;
[settingsLabel sizeToFit];
return cell;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *str = [_menuItems objectAtIndex:indexPath.row];
CGSize size = [str sizeWithFont:[UIFont fontWithName:@"Helvetica" size:17] constrainedToSize:CGSizeMake(200, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
NSLog(@"%f",size.height);
return size.height + 10;
}
Вы используете раскадровку? Какая версия iOS вы видите странное поведение с приведенным выше кодом? Я пробовал ваш код с небольшой модификацией с помощью раскадровки в iOS 7, он выглядит довольно хорошо с двумя строками текста. – Ricky
Да, я использую раскадровку с iOS 7 и имитирую ее на iPhone 5 (4-дюймовый экран). В моем проекте я вижу только 1 строку текста. Может быть, с меткой на раскадровке ... – nabrugir