2011-02-05 5 views
3

Возможно ли организовать текст в две колонки с помощью только UITextView? Если нет, как я могу рассчитать высоту для данной строки текста?Два столбца текста в UITextView?

+0

Проверьте эту ссылку, возможно, это поможет http://stackoverflow.com/questions/1818590/numberoflines-in-uitextview – Robin

+0

Не совсем то, что я ищу. Я получаю текст из внешнего источника, поэтому у меня нет возможности поместить «\ r» или «\ n» и еще что-то. – Jumhyn

+0

Я не понимаю по 'высоте для заданной строки текста' – Robin

ответ

1

NSString имеет метрических функций, таких как

sizeWithFont:forWidth:lineBreakMode:

, что вам нужно будет использовать. Фактически я обычно использую sizeWithFont:constrainedToSize:lineBreakMode:, после создания CGSizeMake(columnWidth, FLT_MAX), который затем используется для результата также - с FLT_MAX как высота, ограничивается только ширина. Полученный результат CGSize скажет вам фактическую высоту.

Я думаю, что с учетом этого вам будет намного проще использовать два UITextViews и разбить текст на два раздела.

+0

Согласен. Я хотел бы сломать текст на полпути, так как я могу вычислить текст на заданной высоте UITextView? – Jumhyn

+0

Я бы, вероятно, сначала определял высоту тотального цикла, который был бы построен в первом столбце, добавляя слова (определяемые пробелами, вы могли бы легко создать массив всех слов в строке), пока не достигнете высоты примерно наполовину Всего. Второй столбец - это остальные слова. Но, как и большинство проблем с iOS, когда решение, которое вы придумали, кажется немного громоздким, я уверен, что есть более разумный способ. –

+0

Подождите, если оба столбца имеют одинаковую ширину, я могу просто взять половину или строку. Duh>. < – Jumhyn

-1

Один UITextView может отображать только один столбец. Чтобы получить высоту, создать закадровый UITextView, а затем попробовать что-то вроде:

myTextView.text = theText; 
theTextHeight = [myTextView contentSize].height; // in points 
Смежные вопросы