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
C'è una domanda correlata: How do I use UIPageControl to create multiple views?, un ottimo modo per farlo è spiegato in questo post del blog: http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html.
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
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));
}
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));
}
}
opzione più pulita del gruppo, grazie – eric
Bravo! Questo ha funzionato per me quando ho collegato il delegato di scroll view al controller di visualizzazione. –
ho fatto un progetto demo per questa domanda. Si prega di visitare: https://github.com/lenhhoxung86/PageControlDemo
- 1. R: come si uniscono/combinano due ambienti?
- 2. UIPageControl è inutile da solo?
- 3. Viste multiple con altezze diverse in ViewFlipper
- 4. Android: EfficientAdapter con due diverse viste
- 5. UIViews con UIPageControl
- 6. Collegamento UIPageControl a UIScrollView a livello di codice
- 7. Come si combinano le monadi in Haskell?
- 8. Come si combinano due repository git?
- 9. Come si combinano due oggetti in Javascript?
- 10. Come si "combinano le variabili" in JavaScript per soddisfare JSLint?
- 11. Come progettare le sottoview per UIScrollView quando si usano gli storyboard per iOS5?
- 12. Creazione di un UIPageControl verticale
- 13. UIPageController in combinazione con UIPageControl?
- 14. Come mostrare carte diverse in un CardLayout?
- 15. Come mostrare più immagini all'interno di UIScrollView in iOS
- 16. Come si combinano due vettori di lunghezza diversa in R
- 17. UIPageControl non viene visualizzato
- 18. Modifica gestori layout per viste diverse in RecyclerView
- 19. C'è un modo per avere viste diverse in un NSCollectionView?
- 20. Come si combinano le espressioni LINQ in una?
- 21. Come si combinano due query Lucene utilizzando OR?
- 22. Come faccio a gestire diverse viste in angular.js
- 23. come modificare i punti UIPageControl
- 24. Come si combinano i valori hash in C++ 0x?
- 25. Come si combinano due elenchi in un dizionario in Python?
- 26. Come si combinano due cicli foreach in uno
- 27. angularJS $ stateProvider: come testare le diverse viste in UI-Router?
- 28. UIPageControl e VoiceOver/accessibility
- 29. Scorri tra schermate diverse (viste) utilizzando gli storyboard
- 30. Come si imposta lo sfondo di UIScrollView per essere trasparenti?
in realtà, guarda la risposta di @ datinc. molto pulito e semplice – eric
@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
@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