Widok przewijania nie działa iOS 7


Mam scrollview, w którym mam 20 UItextviews. scrollview nie działa. Ustawiłem następujące w viewdidload.
self.MainScroll.contentSize = CGSizeMake(320, 1800);

A jednak się nie przewija. Jeśli jednak odbiję się w pionie, po prostu odbije. Mój scrollview jest elementem podrzędnym głównego UIview o wymiarach 320 * 600. Proszę określić, jak włączyć przewijanie !!
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Istnieją dwa sposoby, aby przewijanie działało.

Podejście 1 (z kodem

):
1) dołącz
UIScrollView
do boków jego widoku nadrzędnego, jak wspomniano poniżej.
2) ustaw rozmiar zawartości widoku przewijania na
viewDidLayoutSubviews
:
- (void)viewDidLayoutSubviews {
self.MainScroll.contentSize = CGSizeMake(320, 1800);
}


Podejście 2 (czysty IB, kod nie jest wymagany

):
1) Instalowanie
Sportalization
Nie jest wymagane podczas korzystania
Autolayout
. Musisz podłączyć UiscrollView do prezentacji nadrzędnej, jak wskazano poniżej:
2) Następnie dodaj kolejny element
UIView
wewnątrz UIScrollView, aby działał jako widok zawartości, przypnij go do UIScrollView i przenieś wszystkie kontrolki do tego widoku zawartości:
3) przypnij widok zawartości rodzica, jak wspomniano poniżej:
4) Ustaw modelowane metryki swojego UIViewController na freeform (jest to ważne):
5) Dopasuj rozmiar treści
UIView
do żądanej wysokości (oczywiście jest to również ważne):

Artykuł Apple wyjaśniający UIScrollView i AutoLayouts:

https://developer.apple.com/li ... .html
https://developer.apple.com/li ... .html
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zaktualizuj rozmiar zawartości po pewnym czasie, jak pokazano poniżej.
- (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));
}

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się