2014-07-10 11 views
6

Ottenere un incidente davvero bizzarro con uno UIScrollView qui che semplicemente si rifiuta di scorrere. L'ho installato nella mia StoryBoard e ho impostato correttamente contentSize nel mio ViewDidLoad. Ho ricontrollato per assicurarsi che fosse Scrollable, ma non funziona. Ho impostato scrollView.setContentOffset() e scorre perfettamente con una bella animazione e il delegato ScrollViewDidScroll viene chiamato. Quindi, con quello detto alcun motivo per cui potrebbe non scorrere con i gesti di trascinamento?Swift UIScrollView non scorre ma risponde a setContentOffset e il delegato risponde

Le cose che ho controllato:
- UserInteraction Abilitato su se stesso, tutto sub/superviews.
- Scrollable.
- Commutato: DelaysContentTouches e CancellableContentTouches.

Sono fuori di idee. Attualmente utilizzando Xcode 6 Beta 1. Qualsiasi aiuto sarebbe apprezzato.

saluti,
Mike

risposta

22

Non scorre con gesti di resistenza a causa del layout automatico. In viewDidLoad, il layout automatico ripristina la dimensione del contenuto dopo averlo definito. Hai due opzioni: puoi disabilitare il layout automatico oppure puoi impostare contentSize in viewDidLayoutSubviews.

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 
    scrollView.contentSize = CGSize(width:10, height:10) 
} 
+0

Lui se n'è andato e l'ha fatto. Grazie mille, ho risolto subito il problema. Questo dovrebbe insegnarmi a non usare AutoLayout fino a quando è arrivato swift. Durante tutti gli anni da quando è stato pubblicato, non ho mai optato per AutoLayout come pensavo fosse una seccatura. Lo stavo usando da un paio di mesi e mi piace davvero. Credo che dovrò imparare tutti questi piccoli bocconcini mentre vado. In avanti e verso l'alto! – Mackey18

+0

Questo ha funzionato .. semplice ed elegante .. –