2010-04-16 14 views
13

Mam UIScrollView zawarte w niestandardowym UIView o wielkości zawartości większej niż ramka ScrollView.UIScrollView nie odbija się

Jestem w stanie przeciągnąć przewijanie, jak się spodziewam, ale to nie daje mi efektu opasywania gumy, który uzyskuje się za pomocą UITableView lub UIWebView. Po prostu zatrzymuje się, gdy dojdziesz do jednej z skrajności.

Mam ustawić bounce = YES, czy jest coś innego, co powinienem zrobić?

Czytam dokumenty, a oni mówią, że muszę wdrożyć delegata. Ja to zrobiłem.

Mówią też, że powinienem zmienić poziomy powiększenia, ale nie chcę, aby użytkownik był w stanie powiększać, więc nie ustawiłem ich.

Odpowiedz

44

Dla każdego, kto znajdzie ten wątek później, jeśli instacji UIView i ponowne ustawienie ramka UIScrollView „s na każdym layoutSubviews, że jest problem - to anuluje bounce:

http://openradar.appspot.com/8045239

Ty należy zrobić coś podobnego do tego:

- (void)layoutSubviews; 
{ 
    [super layoutSubviews]; 

    CGRect frame = [self calculateScrollViewFrame]; 
    if (!CGRectEqualToRect(frame, self.scrollView.frame)) 
     self.scrollView.frame = frame; 
} 
+0

jesteś mężczyzną – wbarksdale

+0

zmarnowane godziny źle skierowanego wysiłku w dół różne dziury królika przed podejrzewając to. Dziękuję Ci! – aehlke

0

To ciekawe ... Czy podczas przewijania widoku przewijania użytkownik dużo się dzieje? Może to może spowodować problem. IPhone może działać wielozadaniowo, ale nie za dużo. Czy widzę cały Twój kod związany z widokiem przewijania?

+0

Nic ciekawego dzieje się w ogóle! Jest tylko widok przewijania z dużym UIView dodanym jako widok podrzędny, którego ramka ma taki sam rozmiar, jak rozmiar zawartości przewijania. W widoku podrzędnym jest kilka niestandardowych UIViews jako dzieci. –

3

Okazuje się, że utrzymywanie UIScrollView w moim niestandardowym UIView było przyczyną problemów.

Po przełączeniu mojego niestandardowego interfejsu UIView na dziedziczenie z UIScrollView, zaczęło działać podskakiwanie.

+0

Oto, co się działo: http://openradar.appspot.com/8045239 – leolobato

+0

Mam problem z zagnieżdżonymi widokami UIScrollViews. Sprawdziłem, czy ramki subviews nie są niepotrzebnie modyfikowane podczas wywoływania layoutSubviews jako stanów łącza Openradar i używam również podklasy UIScrollView do wewnętrznego scrollView, który nie jest odbijany – Pacu

26

miałem ten sam problem, na który nie został UIScrollView wszystko wypełnione (ale nadal chciał go odbić). Wystarczy setted:

scroll.alwaysBounceVertical/Horizontal = YES; 

I to działało jak oczekiwano

+0

Bardzo pomocne, gdy masz kontrolę odświeżania w widoku przewijania, ale nie zawiera ona wystarczającej ilości odbicia (co uniemożliwia działanie kontrolki odświeżania). – DMan

Powiązane problemy