Ответ 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`.
}