Как легко оформить содержимое UIScrollView в перо - PullRequest
10 голосов
/ 03 апреля 2012

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

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

1 Ответ

27 голосов
/ 03 апреля 2012

ОБНОВЛЕНИЕ

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

ОРИГИНАЛ

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

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

setting up content view

Это новое представление верхнего уровня будет вашим представлением контента.Дайте вашему контроллеру представления два выхода: 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`.
}
...