2009-10-20 17 views
35

Mam bardzo ciężko znaleźć dobre przykłady UIScrollView. Nawet UIScrollView Suite firmy Apple trochę mi brakuje.Nauka podstaw UIScrollView

Szukam samouczka lub zestawu przykładowego, który pokazuje, jak utworzyć coś podobnego do przewijania karty Safari w przeglądarce Safari, gdy pomniejszysz widok z jednego okna przeglądarki i będzie można przejść do innych.

Ale trudno mi jest uzyskać widok w widoku przewijania. Mam widok skonfigurowany z obrazem w nim, ale kiedy dodaję go do widoku przewijania, otrzymuję tylko czarny prostokąt, bez względu na to, co dodam do widoku.

Wszelkie linki lub fragmenty kodu byłyby świetne!

+0

można wyjaśnić co masz na myśli przez przewijanie zakładki iPhone Safari? Czy to jest po kliknięciu przycisku w prawym dolnym rogu, a następnie pojawi się UIPageControl, który pozwala przejść do innych okien przeglądarki? – mahboudz

Odpowiedz

46

Oto scroll view guide from Apple

Podstawowe kroki są:

  1. Tworzenie UIScrollView i widok materiały, które chcesz umieścić w środku (w przypadku UIImageView).
  2. Utwórz widok zawartości w widoku przewijania.
  3. Ustaw rozmiar treści przewijania na rozmiar klatki widoku treści. To bardzo ważny krok, który ludzie często pomijają.
  4. Umieść widok przewijania w oknie.

Jeśli chodzi o zachowanie stronicowania, sprawdź właściwość UIScrollView o wartości pagingEnabled. Jeśli chcesz przewinąć o mniej niż całą stronę, musisz zagrać w sztuczki z clipsToBounds, co jest przeciwieństwem tego, co dzieje się w this StackOverflow question.

+0

EDYCJA: znalazłem moje pytanie tutaj: http://stackoverflow.com/questions/1135163/how-do-i-use-uiscrollview-in-interface-builder - i niestety odpowiedź brzmi "nie, Apple zapomniał włączyć to" . ORYGINALNA KOMENTARZ: Czy jest jakiś sposób, aby wykonać KROK 3 powyżej z poziomu Interface Builder? Robiłem to w kodzie, nie mogąc znaleźć sposobu w IB. To dziwne - wydaje się, że Apple zmusza cię do napisania kodu, jeśli kiedykolwiek chcesz, aby UIScrollView działał naprawdę? – Adam

+3

Szybka uwaga: link do przykładu jest już nieaktualny, a teraz przekierowuje do różnych stron ze spamem. –

+2

Krok 3: Aby ustawić rozmiar zawartości, dodaj '[self.scrollView setContentSize: CGSizeMake (contentView width, contentView height)];' do metody 'viewDidAppear'. – jithin

16
UIScrollView *scrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

NSInteger viewcount= 4; 
for (int i = 0; i <viewcount; i++) 
{ 
CGFloat y = i * self.view.frame.size.height; 
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, y,self.view.frame.size.width, self .view.frame.size.height)];  
view.backgroundColor = [UIColor greenColor]; 
[scrollview addSubview:view]; 
[view release]; 
} 
scrollview.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height *viewcount); 

Aby uzyskać więcej informacji Create UIScrollView programmatically

+0

"CGFloat y = i * self.view.frame.size.height;" daje 0 dla całej iteracji. –