2014-07-10 11 views
6

Uzyskując naprawdę dziwny incydent z tutaj UIScrollView, który po prostu odmawia przewijania. Ustawiłem go w moim StoryBoard i ustawiłem prawidłowo contentSize w moim ViewDidLoad. Sprawdziłem dwukrotnie, aby upewnić się, że jest to Scrollable itd., Ale po prostu nie działa. Ustawiam scrollView.setContentOffset() i przewijam dobrze z piękną animacją i wywołaniem delegata ScrollViewDidScroll. Tak więc, z tym powiedział, z jakiegokolwiek powodu, dlaczego nie może być przewijanie za pomocą gestów przeciągania?Swift UIScrollView nie przewija się, ale odpowiadając na setContentOffset i Delegate odpowiada

Rzeczy, które sprawdziłem:
- UserInteraction Włączono na siebie, wszystkie sub/superviews.
- Scrollable.
- Przełączane: DelaysContentTouches i CancellableContentTouches.

Brakuje mi pomysłów. Obecnie używa się Xcode 6 Beta 1. Każda pomoc będzie doceniona.

Pozdrawiam,
Mike

Odpowiedz

22

Nie jest przewijanie za pomocą gestów przeciągania, ze względu na układ Auto. W viewDidLoad układ automatyczny zresetuje rozmiar zawartości po jej zdefiniowaniu. Masz dwie opcje: możesz wyłączyć automatyczny układ lub możesz ustawić contentSize w viewDidLayoutSubviews.

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

On tylko odszedł i to zrobił. Dziękuję bardzo, natychmiast rozwiązałeś problem. To powinno mnie nauczyć, że nie korzystam z AutoLayout, dopóki nie pojawią się szybkie. Przez wszystkie lata, które minęły, nigdy nie zdecydowałem się na AutoLayout, ponieważ myślałem, że to był kłopot. Używałem go już od kilku miesięcy i naprawdę to lubię. Chyba będę musiał uczyć się tych wszystkich małych smakołyków. Naprzód i w górę! – Mackey18

+0

To działało .. proste i eleganckie .. –

Powiązane problemy