У меня есть проблема в приложении для iPhone.
Приложение имеет контроллер табличного представления с пользовательскими ячейками табличного представления. Каждая ячейка имеет Маркировку (исправьте меня, если я должен использовать текстовое представление и т.д.). Я получаю текст динамично от вызова веб-сервиса, и я не знаю сколько времени текст, собирающийся быть.
Теперь проблема состоит в том, что я хочу скорректировать ширину ячеек табличного представления на основе текста, который я получаю. Как я могу вырастить высоту Маркировки или TextView withinin ячейка табличного представления, таким образом, она может содержать весь текст и в действительности вырастить ширину ячеек табличного представления.
Кто-либо знает, как обработать этот вид проблемы проектирования?
Спасибо
Ответ зависит от размера и сложности отображаемой информации.
Для небольших объемов текста вы можете использовать NSString UIKit Additions , чтобы вычислить размеры отображаемой строки, а затем настроить размер меток или других элементов управления ячейки перед возвратом ячейки в табличное представление. . Это позволит вам точно настроить отображение для каждой ячейки.
Для больших объемов текста я предлагаю подробный просмотр, если это вообще возможно. Отобразите небольшой объем текста в таблице, а затем выделите таблицу, чтобы открыть другое представление, содержащее полный текст. Я думаю, что большинству пользователей сложно читать много текста в табличном представлении.
Вы можете получить высоту строки, переданной из функции ниже
-(float)getHeightByWidth:(NSString*)myString:(UIFont*)mySize:(int)myWidth {
CGSize boundingSize = CGSizeMake(myWidth, CGFLOAT_MAX);
CGSize requiredSize = [myString sizeWithFont:mySize constrainedToSize:boundingSize lineBreakMode:UILineBreakModeWordWrap];
return requiredSize.height;
}
На основе вышеуказанной функции вы можете установить высоту метки, а также ячейку, в которой она будет использовать ..