Прокрутка Не работает IOS 7

У меня есть scrollview внутри, в котором у меня есть 20 UItextviews. Функция scrollview не работает. Я установил следующее в viewdidload.

self.MainScroll.contentSize = CGSizeMake(320, 1800);

Тем не менее он не прокручивается. Однако, если я дам отскок вертикально, он просто отскакивает. Мой scrollview является дочерним элементом основного пользовательского интерфейса размером 320 * 600. Прочтите, как включить прокрутку!

Ответ 1

Есть два способа заставить прокрутку работать.

Подход 1 (с кодом):

1) Контакт UIScrollView по сторонам его родительского вида, как указано ниже.

enter image description here

2) Задайте размер содержимого прокрутки в viewDidLayoutSubviews:

- (void)viewDidLayoutSubviews {
    self.MainScroll.contentSize = CGSizeMake(320, 1800);
}

Подход 2 (чистый IB, не требуется код):

1) Настройка contentSize не требуется, если используется AutoLayout. Вам нужно привязать свой UIScrollView к родительскому виду, как указано ниже:

enter image description here

2) Затем добавьте еще один UIView внутри UIScrollView, чтобы действовать как представление контента и привязать его к UIScrollView и переместить все элементы управления внутри этого содержимого:

enter image description here

3) Отобразить содержимое содержимого содержимого в виде родительского прокрутки, как указано ниже:

enter image description here

4) Задайте ваши имитируемые показатели UIViewController для Freeform (это важно):

enter image description here

5) Разместите свой контент UIView до нужной высоты (очевидно, тоже важно):

enter image description here

Статья Apple, объясняющая UIScrollView и AutoLayouts: https://developer.apple.com/library/content/technotes/tn2154/_index.html

Ответ 2

Обновите размер содержимого после некоторой задержки, как показано ниже.

- (void)viewDidLayoutSubviews {
    [self performSelector:@selector(updateContentSize)
               withObject:nil
               afterDelay:0.25];

}

-(void)updateContentSize{
    UIView *viewLast = [viewContent viewWithTag:100];
    scrollViewAd.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, CGRectGetMaxY(viewLast.frame));
}