Как я могу исправить мой scrollView динамически, когда у меня есть более одного textViews? - PullRequest
0 голосов
/ 21 февраля 2011

У меня есть scrollView, который состоит из 3 textViews, кнопок и меток в detailView.Я использую 3 вида текста, потому что мне нужны разные шрифты для моего названия заголовка, даты и описания.Проблема иногда в том, что описание длинное, а иногда в небольшом, и то же самое с заголовками.тогда представление не выглядит хорошо из-за большого количества пустых мест между заголовком и описанием.Можно ли динамически устанавливать размер textView и scroll view или есть какой-то лучший подход для решения этой проблемы.спасибо заранее

Ответы [ 2 ]

1 голос
/ 21 февраля 2011

Вам необходимо настроить рамки текстовых представлений так, чтобы они соответствовали их размеру contentSize (см. Верхний ответ здесь: Как мне определить размер UITextView для его контента? о том, как это сделать, использует contentSizeсвойство textview), затем вы настраиваете contentSize scrollView на основе фреймов всех элементов управления.

Предполагая, что ваши текстовые представления располагаются последовательно вертикально (просто настройте код, если есть интервал и т. д.):

// (first adjust each text view's frame per the linked answer)
...
// then adjust the frames of the content
CGRect topTextViewFrame = topTextView.frame;
CGRect middleTextViewFrame = middleTextView.frame;
middleTextViewFrame.origin.y = topTextViewFrame.origin.y + topTextViewFrame.size.height;
middleTextView.frame = middleTextViewFrame;
CGRect bottomTextViewFrame = bottomTextView.frame;
bottomTextViewFrame.origin.y = middleTextViewFrame.origin.y + middleTextViewFrame.size.height;
// then adjust your other controls based on these frames, for example:
CGRect myButtonFrame = myButton.frame;
myButtonFrame.origin.y = bottomTextViewFrame.origin.y + bottomTextViewFrame.size.height;
// finally adjust the contentSize of the scrollview assuming the button is the bottom element
CGSize csize = myScrollView.contentSize;
csize.height = myButtonFrame.origin.y + myButtonFrame.size.height;
myScrollView.contentSize = csize;
1 голос
/ 21 февраля 2011

Вы можете установить размер фрейма в зависимости от длины символа, установив фрейм в начале:

CGRectMake (0.0, 0.0, [yourString count]*10, 30.0);

Это то, что я сделал, когда у меня был UIPopover, который придумалимя переменной.

...