Как легко конструировать содержимое UIScrollView в кончике

У меня есть scrollview, который должен отображать представление больше, чем доступная область отображения. Я хочу легко создать пользовательский интерфейс, не перемещая встроенный просмотр вверх и вниз каждый раз, когда мне приходится делать некоторые изменения. Проблема в том, что все за пределами видимой области невидимо в IB.

Есть ли какой-либо переключатель или трюк, чтобы сделать все видимым в IB?

Ответ 1

UPDATE

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

ORIGINAL

Создайте свой вид прокрутки в цикле с соответствующим надзором, положением и размером.

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

настройка содержимого

Это новое представление верхнего уровня будет вашим представлением содержимого. Дайте вашему контроллеру просмотра два выхода: scrollView и contentView:

@interface MyViewController

@property (nonatomic, weak) IBOutlet UIScrollView *scrollView;
@property (nonatomic, strong) IBOutlet UIView *contentView;

@end

В наконечнике подключите выход scrollView к экрану прокрутки и подключите выход contentView к представлению содержимого.

Создайте иерархию представления содержимого внутри представления содержимого. Установите его размер настолько большой, насколько вам нужно - он может быть больше 320x480 (если вы установили все его столбцы в None).

В вашем представлении контроллер viewDidLoad, добавьте contentView в качестве поднабора scrollView и установите scrollView.contentSize в размер contentView:

@implementation MyViewController

@synthesize scrollView = _scrollView;
@synthesize contentView = _contentView;

- (void)viewDidLoad {
    [super viewDidLoad];
    [self configureScrollView];
}

- (void)configureScrollView {
    CGSize size = self.contentView.bounds.size;
    self.contentView.frame = CGRectMake(0, 0, size.width, size.height);
    [self.scrollView addSubview:self.contentView];
    self.scrollView.contentSize = size;

    // If you don't use self.contentView anywhere else, clear it here.
    self.contentView = nil;
    // If you use it elsewhere, clear it in `dealloc` and `viewDidUnload`.
}