2013-10-03 1 views
9

Durante la migrazione di un progetto da Xcode 4 iOS 6, ho notato che l'istanza di UIScrollView non si comporta correttamente. A volte sembra essere bloccato, e solo quando pizzico dentro o fuori per cambiare la scala inizia a scorrere correttamente.Xcode 5 iOS 7 - UIScrollView che si comporta in modo strano

Ho notato alcune risposte in una domanda simile, sulla falsariga di rimuovere i vincoli di posizionamento, che ho provato (anche se alla fine ho bisogno dei vincoli) e non ha funzionato.

Qualcuno ha riscontrato questo comportamento e trovato un modo per risolverlo?

+2

Assicurarsi che 'setContentSize' sia in' viewWillLayoutSubviews' e in 'scrollViewDidEndZooming: withView: atScale:'. In iOS6, se non avessi il codice in questi metodi, il comportamento predefinito funzionava a dovere, in iOS7 con il nuovo sistema di layout, sono necessari. – Buddy

+2

Significa 'viewDidLayoutSubviews', può essere chiamato più di una volta per una configurazione, continua a chiamare' seContentSize'. – Buddy

+1

Grazie. Funziona ora. Ti assegnerebbe dei punti ma la domanda era chiusa. –

risposta

1

Verificare che setContentSize sia in viewDidLayoutSubviews e in scrollViewDidEndZooming:withView:atScale:. In iOS6, se non hai chiamato setContentSize in questi metodi, il comportamento predefinito ha funzionato bene, in iOS7 con il nuovo sistema di layout, sono necessari. viewDidLayoutSubviews può essere chiamato più di una volta per una configurazione, basta continuare a chiamare setContentSize.

16

ho potuto farlo funzionare utilizzando

self.automaticallyAdjustsScrollViewInsets = NO; 

nel controller della vista che tiene ScrollView. Basta metterlo dopo l'istanza della visualizzazione di scorrimento.

+0

Sembra promettente, lo proveremo al più presto e ti farò sapere! –

+0

Siamo spiacenti, non ha funzionato. –

+0

Funziona .... !! – TheTiger