2010-04-16 12 views
13

Possiedo un UIScrollView contenuto in una UIView personalizzata con una dimensione di contenuto maggiore della cornice di ScrollView.UIScrollView non rimbalza

Sono in grado di trascinare il rotolo come mi aspetto, ma la cosa non mi dà l'effetto banding di gomma che ottieni con UITableView o UIWebView. Si ferma solo quando arrivi a uno degli estremi.

Ho impostato bounce = YES, c'è qualcos'altro che dovrei fare?

Ho letto i documenti e dicono che devo attuare il delegato. L'ho fatto.

Si dice anche che dovrei cambiare i livelli di zoom, ma non voglio che l'utente sia effettivamente in grado di zoomare così non li ho impostati.

risposta

44

Per tutti coloro che trova questa discussione più tardi, se si sta Subclassing UIView e ri-regolazione telaio s il UIScrollView' su ogni layoutSubviews, questo è il problema - si annulla il rimbalzo:

http://openradar.appspot.com/8045239

È dovrebbe fare qualcosa di simile a questo:

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

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

tu sei l'uomo – wbarksdale

+0

ore sprecate di sforzi errati in varie buche di conigli prima sospettando questo. Grazie! – aehlke

0

Ciò è interessante ... C'è molto da fare mentre l'utente scorre la vista di scorrimento? Forse potrebbe causare il problema. L'iPhone può multitasking, ma non troppo. Posso vedere l'intero codice che ha a che fare con la vista di scorrimento?

+0

Niente di interessante in corso a tutti! C'è solo una vista di scorrimento con un UIView di grandi dimensioni aggiunto come subview il cui frame ha le stesse dimensioni della dimensione del contenuto della vista di scorrimento. La sottoview ha un sacco di UIViews personalizzate come bambini. –

3

Si è scoperto che mantenere UIScrollView all'interno del mio UIView personalizzato causava il problema.

Dopo aver spostato la mia Uiview personalizzata per ereditarla da UIScrollView, il bouncing ha iniziato a funzionare.

+0

Ecco cosa stava succedendo: http://openradar.appspot.com/8045239 – leolobato

+0

Ho riscontrato questo problema con UIScrollViews nidificate. Ho verificato che i frame di sottoview non vengano modificati inutilmente quando si chiama layoutSubviews come gli stati del link openradar e sto usando anche una sottoclasse UIScrollView per la scrollView interna che non sta saltando – Pacu

26

ho avuto lo stesso problema, su un UIScrollView che non era tutto riempito (ma volevo ancora a rimbalzo). Basta impostato:

scroll.alwaysBounceVertical/Horizontal = YES; 

E ha funzionato come previsto

+0

Molto utile quando si ha un controllo di aggiornamento sulla vista di scorrimento ma non contiene abbastanza rimbalzo (che impedisce al controllo di aggiornamento di funzionare). – DMan

Problemi correlati