2014-07-10 3 views
6

Hier wird ein wirklich bizarrer Vorfall mit einer UIScrollView, die einfach nicht scrollt. Ich habe es in meinem StoryBoard eingerichtet und den contentSize richtig in meinen ViewDidLoad gesetzt. Ich habe überprüft, ob es Scrollable usw. ist, aber es funktioniert einfach nicht. Ich setze scrollView.setContentOffset() und es scrollt gut mit einer schönen Animation und der ScrollViewDidScroll Delegat wird genannt. Also, mit dem genannten Grund, warum es nicht mit Drag-Gesten scrollen kann?Swift UIScrollView scrollt nicht, reagiert aber auf setContentOffset und der Delegat antwortet

Dinge, die ich habe überprüft:
- UserInteraction auf sich selbst aktiviert, werden alle sub/superviews.
- Scrollable.
- Toggled: DelaysContentTouches und CancellableContentTouches.

Ich habe keine Ideen mehr. Derzeit verwenden Xcode 6 Beta 1. Jede Hilfe wäre willkommen.

Grüße,
Mike

Antwort

22

Es ist nicht, weil der Auto-Layout mit Drag Gesten scrollen. In viewDidLoad setzt das automatische Layout die Inhaltsgröße zurück, nachdem Sie sie definiert haben. Sie haben zwei Möglichkeiten: Sie können das automatische Layout deaktivieren oder contentSize in viewDidLayoutSubviews festlegen.

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

Er ist nur gegangen und es getan. Vielen Dank, das Problem sofort gelöst. Das sollte mir beibringen, AutoLayout nicht zu benutzen, bis es schnell kam. In all den Jahren, seit es draußen ist, habe ich mich nie für AutoLayout entschieden, da ich dachte, dass es ein Aufwand war. Ich benutze es jetzt seit ein paar Monaten und mag es wirklich. Ich denke, ich werde all diese kleinen Leckerbissen lernen müssen, wenn ich gehe. Vorwärts und aufwärts! – Mackey18

+0

Das hat funktioniert .. einfach und elegant .. –