Как настроить UIScrollView в Интерфейсном Разработчике с элементами пользовательского интерфейса вне основного представления iPhone? - PullRequest
9 голосов
/ 11 августа 2010

Я создаю форму ввода данных в своем приложении для iPhone, и полей для данных больше, чем уместится на экране. Я решил, что я должен поместить их в UIScrollView, чтобы пользователь мог прокрутить форму. Какой лучший способ построить это в Интерфейсном Разработчике? Я знаю, что могу сделать это программно, но я бы хотел сделать это в Интерфейсном Разработчике, если смогу. Проблема в том, как я могу расположить UILabels, UITextFields и т. Д., Если они выходят за пределы основного экрана iPhone - в той части экрана, для которой UIScrollView становится полезным?

Ответы [ 7 ]

7 голосов
/ 03 мая 2012

Лучший обходной путь, который я нашел для этой проблемы (который я считаю неудобным для Interface Builder), заключается в следующем:

  1. Поместите «контейнер» UIView внутри UIScrollView, установите размер контейнера UIView равным тому, что необходимо (например, 320 x 1200) с помощью инспектора, и добавьте свой контент в это представление контейнера. (ваши кнопки, текстовые поля и т. д.).
  2. установите contentSize для UIScrollView в коде равным размеру вашего контейнера UIView. например, где-то в viewDidLoad (например, scrollView.contentSize = containerView.frame.size;)
  3. Чтобы изменить содержимое за пределами представления прокрутки в Интерфейсном Разработчике, вам необходимо каждый раз перетаскивать представление контейнера за пределы представления прокрутки, вносить изменения, а затем перетаскивать представление контейнера обратно в UIScrollView и создавать.
5 голосов
/ 31 декабря 2011

Это на самом деле просто:

  1. Создание нового класса контроллера представления, например, MyScrollViewController

  2. Создание нового XIB с UIScrollView в качестве самого верхнегопросмотреть и установить класс Владельца файла на MyScrollView Controller

  3. Установить атрибут представления владельца файла на представление прокрутки

  4. Перетащитевнизу прокрутки для создания нужного размера.

  5. Расположите различные элементы пользовательского интерфейса в качестве вложенных представлений прокрутки

  6. Создать иподключите IBOutlet в MyScrollViewController.h для просмотра с прокруткой, например,

    @property (retain, nonatomic) IBOutlet UIScrollView *scrollView;
    
  7. В методе viewDidLoad MyScrollViewController добавьте следующую строку кода:

    self.scrollView.contentSize = self.scrollView.frame.size;
    

Т-го-го - вот и все, ребята!

1 голос
/ 16 ноября 2011

Установите «Вставки содержимого» в «Размер прокрутки» в «Инспекторе размеров»: Bottom = YourFrameHeight - ScreenHeight.Это позволит вам прокручивать диапазоны сверху вниз, снизу вверх вашего UIScrollView

0 голосов
/ 21 июля 2016

Наконец-то есть разумное решение для всего этого, а именно - разместить контейнерное представление внутри UIScrollView. Поскольку Интерфейсный Разработчик отображает UIViewController внутри Контейнерного Представления отдельно, вы, наконец, можете увидеть, как будет выглядеть ваш контент UIScrollView, не скрещивая пальцы и стоя на голове.

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

0 голосов
/ 18 июня 2014

Что сработало для меня в xCode5 (без раскадровки, с использованием автоматического размещения), так это использование 7-ступенчатого ответа над окончанием «Thth-th-вот и все!»и добавление двух шагов.

8) Перетащите новый UIView в конструктор интерфейса.Не в представлении прокрутки.Просто по себе.Поместите все свои элементы управления / представление в это и сделайте его настолько большим, насколько вы хотите.Я подключил это представление как contentView.

@ свойство (слабое, неатомное) IBOutlet UIView * contentView;

9) Затем в - (void) viewDidLoad

[self.mainScrollView addSubview: self.contentView];[self.mainScrollView setContentSize: CGSizeMake (self.contentView.frame.size.width, self.contentView.frame.size.height)];

Просто сказать, что это заставило меня работать.

0 голосов
/ 11 августа 2010

У меня тоже была такая же проблема. В итоге я поместил внутри него еще один UIView и установил высоту на то, что хотел. Затем я поместил все свои элементы интерфейса внутри него. Это позволяет перетаскивать внутренний вид вверх и вниз.

0 голосов
/ 11 августа 2010

Дважды щелкните, чтобы открыть сам UIScrollView в IB и увеличить размер до нужного или большего размера (вы всегда можете уменьшить во время выполнения).Затем просто добавьте элементы.

РЕДАКТИРОВАТЬ: не работает - см. здесь вместо.

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