2013-11-29 2 views
0

Как я могу сделать простой дизайн, как на изображении ниже, где длина текста является динамической? На изображении ниже представлены два раздела «Ингредиенты» и «Инструкции с динамической длиной текста». Там может быть больше разделов.iOS: Как я могу достичь дизайна с текстом динамической длины?

Должен ли я перейти на UIView с помощью UIScrollView или Table View? Любая помощь будет оценена по достоинству.

+0

Выглядит как прекрасный пример для UITableView. Вы можете использовать методы NSString для вычисления размера, который будет иметь ваша строка. Этот размер можно вернуть из метода '- tableView: cellForRowAtIndexPath:' delegate. –

ответ

0

Попробуйте этот подход.

1. Использование UITextView Это даст вам возможность прокручивать текст внутри UITextView, если текст будет очень большой.

2. Получить размер вас текста зрения // возвращает размер для UITextView как для IOS7 и iOS6

-(CGSize) getSizeWithMaxLabelSize:(CGSize) maxLabelSize forTextViewWithText:(NSString *) text 
{ 
    CGSize expectedLabelSize; 
    CGSize maximumLabelSize = maxLabelSize; 
    if (SYSTEM_VERSION_GREATER_THAN(@"6.2")) { 
     NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:[UIFont fontWithName:@"Arial" size:12] forKey: NSFontAttributeName]; 
     CGRect rect =[text boundingRectWithSize:maximumLabelSize options:NSStringDrawingUsesLineFragmentOrigin attributes:stringAttributes context:nil]; 
     expectedLabelSize = rect.size; 
     expectedLabelSize.height = ceilf(expectedLabelSize.height); 
     expectedLabelSize.width = ceilf(expectedLabelSize.width); 
} else { 
     expectedLabelSize = [text sizeWithFont:[UIFont fontWithName:@"Arial" size:EPCommentViewFontSize] constrainedToSize:maximumLabelSize lineBreakMode:NSLineBreakByWordWrapping]; 
}  
     return expectedLabelSize; 
} 

3. Используйте этот метод (2) при вычислении высоты ячейки для вас таблица - tableView:cellForRowAtIndexPath:

+0

Я использовал решение, подобное этому. – Sharj

0

Вы должны пойти за UITextView/UILabel с UIScrollView. UILabel предпочтительнее, если содержимое не редактируется, и вам не нужна прокрутка текста на фиксированной области.

Если ваши потребности выполнены ими, вам необходимо с UILabel с UIScrollView.

Смежные вопросы