Ho un progetto con un pulsante che consente all'utente di passare dalla visualizzazione elenco (UITableView
) alla visualizzazione griglia (UICollectionView
) ma non so come farlo.Come passare UITableView e UICollectionView
risposta
Supponiamo che il controller disponga di una proprietà UITableView
denominata tableView
e una proprietà denominata collectionView
. Nel tuo viewDidLoad
devi aggiungere la vista iniziale. Supponiamo che sia la vista tabella:
- (void)viewDidLoad
{
self.tableView.frame = self.view.bounds;
[self.view addSubview:self.tableView];
}
Poi, nel tuo tasto di richiamata, scambiare i punti di vista fuori:
- (void)buttonTapped:(id)sender
{
UIView *fromView, *toView;
if (self.tableView.superview == self.view)
{
fromView = self.tableView;
toView = self.collectionView;
}
else
{
fromView = self.collectionView;
toView = self.tableView;
}
[fromView removeFromSuperview];
toView.frame = self.view.bounds;
[self.view addSubview:toView];
}
Se volete un'animazione di fantasia, è possibile utilizzare +[UIView transitionFromView:toView:duration:options:completion:]
invece:
- (void)buttonTapped:(id)sender
{
UIView *fromView, *toView;
if (self.tableView.superview == self.view)
{
fromView = self.tableView;
toView = self.collectionView;
}
else
{
fromView = self.collectionView;
toView = self.tableView;
}
toView.frame = self.view.bounds;
[UIView transitionFromView:fromView
toView:toView
duration:0.25
options:UIViewAnimationTransitionFlipFromRight
completion:nil];
}
grazie! Ma quale ViewController posso usare? TableViewController o CollectionViewController. Come posso utilizzare TableViewDelegate e Datasource in una classe outsite (non in ViewController)? –
Basta usare un normale UIViewController e aggiungere entrambi i tipi di vista come proprietà. Oppure, se si desidera mantenere separata la logica per le due viste, è possibile creare un UITableViewController e un UICollectionViewController e utilizzare le loro viste anziché le proprietà del controller principale. – Simon
Se le viste sono già parte della gerarchia della vista (ad esempio aggiungendo con xib/storyboard) devi passare 'UIViewAnimationOptionShowHideTransitionViews' come uno dei parametri delle opzioni in' + transitionFromView: ToView: duration: options: completion: 'metodo . – MrBr
Un altro modo per affrontarlo consiste nel disporre di un singolo UICollectionView
in cui è possibile passare all'implementazione UICollectionViewFlowLayout
in base alla modalità desiderata.
Per convertire da UITableView
a UICollectionView
, ci sono molti tutorial online, ad esempio this.
- 1. Quando utilizzare UICollectionView anziché UITableView?
- 2. Come passare da UICollectionView a UIViewController come Pinterest/Evernote
- 3. Come passare il gesto di pan a UICollectionVIew da UICollectionViewCell?
- 4. Come creare e utilizzare UIcollectionView a livello di codice?
- 5. UICollectionView reloadSections con animazione
- 6. UICollectionView carica più dati
- 7. UICollectionView willDisplayCell metodo delegato?
- 8. UIRefreshControl con UICollectionView in iOS7
- 9. UICollectionView e visualizzazione supplementare (intestazione)
- 10. È completamente statico UICollectionView possibile?
- 11. UITableView e UIRefreshControl
- 12. UICollectionView Intestazioni mobili sulla parte superiore e laterale
- 13. UICollectionView: errore di asserzione in - [UICollectionView _endItemAnimations]
- 14. Come aggiungere UIActivityIndicatorView al piè di pagina di UICollectionView?
- 15. UICollectionView con cella dinamica e statica
- 16. Come avviare UITableView sull'ultima cella?
- 17. Altezza uguale di UICollectionViewCell e UICollectionView
- 18. Set UITableView Delegato e DataSource
- 19. Come ottenere correttamente l'indice dal percorso dell'indice in UICollectionView?
- 20. Memorizzazione nella cache di un'immagine e UICollectionView
- 21. UICollectionView: aggiungere spazio tra intestazione e articoli
- 22. UICollectionView: come aggiungere spazio tra piè di pagina e intestazione?
- 23. iOS6 UICollectionView e UIPageControl - Come ottenere la cella visibile?
- 24. Come filtrare UICollectionView e mantenere la tastiera in alto?
- 25. dinamicamente generare cellule UITableView e Headrs
- 26. Come passare NSData come NSString e recuperarlo?
- 27. Imposta bordo in UICollectionView
- 28. Copia didascalia in UICollectionView
- 29. Non è possibile utilizzare UISearchController con UICollectionView?
- 30. iOS: ricaricare singola cellula del UICollectionView
Non è molto povero inglese, ma attualmente è una domanda scarsa. Su cosa esattamente sei bloccato? Cosa hai provato a fare finora? –
Mi dispiace @ ma sono un novizio! –