uiscrollview для прокрутки очень, очень высокой страницы - PullRequest
0 голосов
/ 01 августа 2011

Сверху вниз у меня есть UIView, UIScrollView, UIImage, UILabel, UITextView и UIButton.

Моя причина для самого верхнего UIScrollView была в том, чтобы весь вертикальный контент прокручивался.

Что мне действительно нужно заменить, так это UITextView (5-й вниз), потому что UITextView является подклассом UIScrollView.И этот заменитель должен вместить очень высокий столбец форматированного текста.

То, что я не хочу, это прокручиваемый объект в середине страницы;Я хочу, чтобы всю страницу можно было прокручивать.

Еще одна вещь ... пожалуйста, обратите внимание, что кнопка находится прямо под этим высоким столбцом текста.

Джон Лав

Ответы [ 3 ]

1 голос
/ 01 августа 2011

Если я понимаю вашу проблему, вам не нужна вложенная прокрутка. Так что установите yourTextView.scrollEnabled = NO; // Делаем это программно нашими в кончике

Также для отображения всего текста установите высоту фрейма yourTextView равной его высоте содержимого:

    yourTextView.frame = CGRectMake(yourTextView.frame.origin.x, 
                                    yourTextView.frame.origin.y,
                                    yourTextView.frame.size.width,
                                    yourTextView.contentSize.height + (yourTextView.contentSize.width > yourTextView.frame.size.width ? (yourTextView.contentSize.width * yourTextView.contentSize.height / (yourTextView.contentSize.width - yourTextView.frame.size.width)) - yourTextView.contentSize.height :0)));

/*
If textView is dynamically filled, you have to check if yourTextView.contentSize.width is bigger than yourTextView.frame.size.width then add proportionally what is remaining to the height. 
*/

В конце измените положение кнопки при необходимости:

yourbutton.frame = CGRectMake(yourbutton.frame.origin.x, 
                                yourTextView.frame.origin.y + yourTextView.frame.size.height + 20, //If you want your button to be 20 point after your textView
                                yourbutton.frame.size.width,
                                yourbutton.frame.size.height);

Надеюсь, что это поможет вам ...

1 голос
/ 05 августа 2011

СПАСИБО!Ашак и Пентагп.Я думаю, мне наконец пришлось отказаться и отказаться от идеи, что IB можно использовать для всех графических интерфейсов ...

Весь UIView содержит UILabel, UIImage, UITextView и UIButton в самом низу.

Цель состояла в том, чтобы сделать весь этот контент прокручиваемым.

Спасибо вам, ребята из stackoverflow.com:

  1. с использованием IB, отмените проверку "Прокрутка"Включено "для UITextView
    , потому что это конкретный тип UIScrollView
  2. с использованием IB, перетащите UIScrollView в UIView и сопоставьте размеры и убедитесь, что UIScrollView охватывает все вложенные представления
  3. makeвысота UITextView = его contentSize.height
  4. переместить кнопку UIB ниже этого UITextView

, а затем, благодаря iphonedevsdk.com:

  1. настроить contentSize.height самого верхнего UIScrollview, чтобы включить высоту переставленного UIButton

Проблема решена !!!

0 голосов
/ 01 августа 2011

Ваш вопрос не очень конкретный, но я думаю, что вы спрашиваете, как сделать текстовое представление, которое не прокручивается и расширяется, чтобы соответствовать тексту. Вы можете сделать это с UILabel, но это многошаговый процесс. То же самое будет работать для UITextView, если вы отключите прокрутку и зададите для contentSize размеры кадра.

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100,100,100,100)]; 
label.font = [UIFont systemFontOfSize:24];
NSString *yourTextString = @"your text";
CGSize maximumLabelSize = CGSizeMake(100, 500);
CGSize expectedLabelSize = [yourTextString sizeWithFont:label.font 
                    constrainedToSize:maximumLabelSize 
                    lineBreakMode:yourLabel.lineBreakMode];
CGRect labelFrame = label.frame;
labelFrame.size.width = expectedLabelSize.width;
labelFrame.size.height = expectedLabelSize.height;
label.frame = labelFrame;

Затем оттуда с помощью рамки метки установите положение кнопки и всех элементов под ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...