2010-08-20 14 views
9

Ho cercato e cercato un tutorial per questo, ma nessuno di loro è quello che sto cercando. Ho provato l'esempio di Apple, ma sono solo i colori e non so come renderli visibili. Tutto quello che sto cercando è una schermata che mostrerà la pagina mentre mostri il controllo della pagina. Ogni volta che le pagine della vista di scorrimento voglio che mostri una vista completamente diversa. Non testo o immagini diversi ma una vista diversa. Molto simile alla schermata iniziale dell'app per iPhone o ESPN Scorecenter. Per favore aiuto! Grazie.Come si combinano UIScrollview con UIPagecontrol per mostrare viste diverse?

risposta

4

Provare questo schema: https://github.com/AdrianFlorian/AFImageViewer per presentare le immagini in una vista di scorrimento utilizzando un controllo di pagina per indicare la pagina corrente.

Non ho ancora aggiunto la documentazione, ma è possibile vedere degli esempi se si clona il progetto.

Si può facilmente: - scaricare le immagini da Internet in un thread separato da solo dando una serie di URL (URL di immagini) - conferiscono una serie di UIImage oggetti - implementare un delegato e gestire l'immagine per ogni pagina

16

Ho creato questa soluzione universale come gli esempi trovati erano complicati e questo è leggibile per me, il codice dovrebbe essere auto esplicativo.

- (IBAction)changePage:(id)sender { 
    _pageControlUsed = YES; 
    CGFloat pageWidth = _scrollView.contentSize.width /_pageControl.numberOfPages; 
    CGFloat x = _pageControl.currentPage * pageWidth; 
    [_scrollView scrollRectToVisible:CGRectMake(x, 0, pageWidth, _scrollView.frame.size.height) animated:YES]; 
} 

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { 
    _pageControlUsed = NO; 
} 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { 
    if (!_pageControlUsed) 
      _pageControl.currentPage = lround(_scrollView.contentOffset.x/
      (_scrollView.contentSize.width/_pageControl.numberOfPages)); 
} 
+0

in realtà, guarda la risposta di @ datinc. molto pulito e semplice – eric

+0

@Rene Dohan come ottenere lo stesso effetto sul click changePage e scrollViewDidEndDecelerating. movimento zip zip di immagini su scroll stesso ha fatto clic sul controllo della pagina. – kiran

+0

@ReneDohan assolutamente! Mi piace molto di SO! Ho solo indicato l'altra soluzione perché i tuoi hanno avuto così tanti voti positivi, e IMHO la risposta più recente è stata migliore. :-) – eric

14

Questo fa la stessa @ReneDohan risposta senza la necessità di variabile per memorizzare lo stato

- (IBAction)changePage:(id)sender { 
    CGFloat x = self.pageControl.currentPage * self.scrollView.frame.size.width; 
    [self.scrollView setContentOffset:CGPointMake(x, 0) animated:YES]; 
} 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.isDragging || scrollView.isDecelerating){ 
     self.pageControl.currentPage = lround(self.scrollView.contentOffset.x/(self.scrollView.contentSize.width/self.pageControl.numberOfPages)); 
    } 
} 
+0

opzione più pulita del gruppo, grazie – eric

+0

Bravo! Questo ha funzionato per me quando ho collegato il delegato di scroll view al controller di visualizzazione. –

Problemi correlati