Как добавить объекты в UIScrollView, выходящие за пределы UIView из Storyboard?

Я хочу иметь несколько кнопок и других объектов в длинном UIScrollView в моем приложении. В раскадровке я добавил UIScrollView, чтобы заполнить представление entre, а затем создал IBOutlet в моем .h файле. Я синтезировал скроллер в моем файле .m, а затем использовал следующий код для запуска скроллера:

@synthesize scroller = _scroller;
- (void)viewDidLoad
{
    [super viewDidLoad];
    [_scroller setScrollEnabled:YES];
    [_scroller setContentSize:CGSizeMake(640, 3000)];
}

Итак, теперь мне нужно знать, как на самом деле добавлять такие вещи, как кнопки, в область скроллера, которая простирается ниже того, что вы можете видеть в представлении. Моя проблема заключается в том, что по мере того, как я добавляю буйки к моему представлению в раскадровке, я могу только добавить что-то к тому, что вы можете видеть в представлении, и, следовательно, нужно знать, как добавить кнопки для разделения, которые я прокручу!

Надеюсь, это ясно. Спасибо за вашу помощь!

Ответ 1

UPDATE

Я разместил скринкаст, который проходит этот шаг поэтапно.

ORIGINAL

Самый простой способ справиться с этим - просто сделать представление в своем раскадровке выше. Когда приложение запускается, любой из обычных контроллеров представления контейнеров (UINavigationController, UITabBarController, UISplitViewController или даже UIViewController, когда он является контроллером корневого представления его окна) изменяет размер представления, чтобы он поместился на экране и прокрутки.

Вот пример того, как установить его в Xcode:

xcode процедура для изменения вида раскадровки

Я изменил размер контроллера вида с "Inferred" на "Freeform". Затем я изменил высоту своего вида с 460 до 800. (Кстати, клавиша смены-сдвига дает вам меню всех объектов под курсором.)

Вот что происходит, когда я запускаю его в симуляторе:

симулятор, запускающий пример приложения

Как вы можете видеть, иерархия представлений была изменена, чтобы соответствовать экрану, но в подзонах UIScrollView не были перемещены, и представление прокрутки соответствующим образом задало его размер содержимого. (Это может работать только с автозапуском, хотя...)

Ответ 2

Итак, пример вам, как добавить кнопку:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTitle:@"Cool title" forState:UIControlStateNormal];
[btn setFrame:CGRectMake(50, 700, 100, 100)];
[btn addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
[_scroller addSubview:btn];

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

Ответ 3

Вы можете использовать инспектор размера (левая часть xcode), чтобы расположить его. или переместить его программно.

Cheers, Кель