2013-12-10 5 views
28

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

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

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

+0

Какова структура вашего '' UISCrollView''? – amb

+0

Вы добавляете scrollview из раскадровки? – Ilario

+0

MainScroll, пожалуйста, найдите скриншот моих настроек! – bharath

ответ

102

Есть два способа вы можете получить прокрутки для работы.

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

1) Pin 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

+0

Нет помощника, не работает, может кто-нибудь поделиться ссылкой или проектом, где вы сделали то же самое, чтобы это было отличным справки !! – bharath

+1

Я изменил свой ответ пошаговыми инструкциями, пожалуйста, дайте мне знать, если он все еще не работает! –

+0

Спасибо, вы сделали мой день :) – bharath

-1

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

- (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)); 
} 
+0

Где объясняется, почему это решает проблему? – Christoph

Смежные вопросы