2013-04-20 3 views
1

iOS для школьного проекта, и я динамически заполняю UITextView ярлыками (с позициями x и y). Но поскольку в нем много элементов, общая длина элементов больше, чем высота экрана iPhone. Я ожидал появления автоматической вертикальной полосы прокрутки, но это не так, поэтому пользователи не могут пойти вниз и прочитать остальные статьи.Как добавить панель прокрутки в текстовое окно?

Как его добавить?

Решение благодаря @elitalon:

scrollTextView.ContentSize = new SizeF(scrollTextView.Frame.Width, sizeH); // Works 

вместо

scrollTextView.ContentSize.Height = sizeH; // Doesn't work 
+2

Вы увидите текст с надписью? Вы хотите добавить ярлыки в UIScrollView? –

+1

Не могли бы вы дать более подробную информацию о своей проблеме? Объект 'UITextView' автоматически отображает прокрутку всякий раз, когда введенный ** текст ** не помещается в рамку. Если вы добавляете что-либо еще, вам нужно динамически вычислять высоту. – elitalon

+0

Я добавляю UILabels динамически в текстовое представление, поэтому он использует координаты x и y, чтобы расположить метки и установить высоту и ширину метки. Итак, как я могу пропустить свиток в этой ситуации? 0x7fffffff, вы получите свой <:) Это UITextView –

ответ

1

Может быть, я не понимаю, что вы хотите достичь именно, но я думаю, что проблема неправомерного использования UITextView класс. Как UITextView документация говорит:.

Класс UITextView реализует поведение для прокрутки, многострочной текстовой области»

Так в идеале вы не должны добавлять UILabel объектов в UITextView Вместо этого я хотел бы создать UILabel и UITextView для каждой статьи вы хотите, чтобы дисплей:

UILabel *article1Label = [[UILabel alloc] initWithFrame:label1Frame]; 
UITextView *article1Text = [[UITextView alloc] initWithFrame:text1Frame]; 

UILabel *article2Label = [[UILabel alloc] initWithFrame:label2Frame]; 
UITextView *article2Text = [[UITextView alloc] initWithFrame:text2Frame]; 

... 

Если вы хочу, чтобы пользователи пролистывать и читать все статьи вы можете добавить все эти подвиды к UIScrollView объекту:

UIScrollView *articlesScrollView = [[UIScrollView alloc] initWithFrame:scrollViewFrame]; 
[articlesScrollView addSubview:article1Label]; 
[articlesScrollView addSubview:article1Text]; 
[articlesScrollView addSubview:article2Label]; 
[articlesScrollView addSubview:article2Text]; 

Наконец, рассчитать размер содержимого UIScrollView путем сложения всех высот своих подвидов. Например:

CGFloat totalHeight = article1Text.frame.size.height + article2Text.frame.size.height; 
articleScrollView.contentSize = { 
    .width = articleScrollView.bounds.size.width, 
    .height = totalHeight 
}; 
+0

elitalon Я добавил его так, как вы сказали (с xamarin, поэтому код C#): scrollTextView.ContentSize.Height = sizeH; где sizeH - это поплавок всех высот ярлыков. Я не вижу необходимости в uitextview для каждого элемента и использую только метки с UIScrollView с именем scrollTextView. (связанная переменная с scrollview на раскадровке). Теперь полоса прокрутки по-прежнему не отображается в iPhone Simulator? ты знаешь почему? –

+0

После этого отправьте свой исходный код, потому что попытка решить вашу проблему с такой маленькой информацией является довольно сложной. – elitalon

+0

Я пытаюсь это сделать: 'code'RectangleF rect = scrollTextView.Frame; \t \t \t rect.Size.Height = sizeH; \t \t \t scrollTextView.Frame = rect; \t \t \t Console.WriteLine (scrollTextView.Frame.Size.Height); 'code' но заметили что-то странное высота остается на 432, а sizeH = 770 –

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