ОБНОВЛЕНИЕ
Я разместил другое решение здесь , которое, на мой взгляд, проще и лучше, и работает в раскадровках.
ОРИГИНАЛ
Создайте свойпрокрутите представление в кончике с соответствующим суперпредставлением, положением и размером.
Затем создайте полностью отдельный экземпляр UIView
верхнего уровня, перетащив UIView
изпалитра и опускание его в рабочую область вне любых существующих видовВ инспекторе атрибутов установите для всплывающего окна «Размер» значение «Нет» и убедитесь, что для строки состояния, верхней и нижней панелей установлено значение «Нет».Вот пример:
Это новое представление верхнего уровня будет вашим представлением контента.Дайте вашему контроллеру представления два выхода: scrollView
и contentView
:
@interface MyViewController
@property (nonatomic, weak) IBOutlet UIScrollView *scrollView;
@property (nonatomic, strong) IBOutlet UIView *contentView;
@end
В наконечнике подключите выход scrollView
к представлению с прокруткой и подключите выход contentView
к содержимомуview.
Создайте иерархию представления контента внутри представления контента.Установите его размер настолько большим, насколько вам нужно - он может быть больше, чем 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`.
}