Mam projekt z przyciskiem, który pozwala użytkownikowi przełączać między widokiem listy (UITableView
) i widoku siatki (UICollectionView
), ale nie wiem jak to zrobić.Jak zmienić UITableView i UICollectionView
Odpowiedz
Załóżmy, że kontroler ma UITableView
właściwość o nazwie tableView
i UICollectionView
właściwość o nazwie collectionView
. W swoim viewDidLoad
musisz dodać widok początkowy. Załóżmy, że jest to widok tabeli:
- (void)viewDidLoad
{
self.tableView.frame = self.view.bounds;
[self.view addSubview:self.tableView];
}
Następnie w przycisk zwrotnego, wymieniać poglądy na:
- (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];
}
Jeśli chcesz fantazyjne animacji, można użyć +[UIView transitionFromView:toView:duration:options:completion:]
zamiast:
- (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];
}
dzięki! Ale z którego ViewController mogę korzystać? TableViewController lub CollectionViewController. Jak mogę użyć TableViewDelegate i Datasource w klasie zewnętrznej (nie ViewController)? –
Wystarczy użyć zwykłego kontrolera UIViewController i dodać oba typy widoku do niego jako właściwości. Lub, jeśli chcesz zachować logikę dla dwóch widoków osobno, możesz utworzyć UITableViewController i UICollectionViewController i użyć ich widoków zamiast właściwości głównego kontrolera. – Simon
Jeśli twoje widoki są już częścią hierarchii widoku (np. Przez dodanie z xib/storyboard) musisz przekazać 'UIViewAnimationOptionShowHideTransitionViews' jako jeden z parametrów opcji w' + transitionFromView: ToView: duration: options: completion: 'method . – MrBr
Innym sposobem radzenia sobie z tym problemem jest posiadanie pojedynczego UICollectionView
, w którym można zmienić implementację UICollectionViewFlowLayout
w zależności od pożądanego trybu.
Aby przekonwertować z UITableView
na UICollectionView
, istnieje wiele samouczków online, na przykład this.
- 1. Optymalne wstępne ładowanie/wstępne pobieranie obrazów w UICollectionView i UITableView
- 2. Jak mogę programowo zmienić rozmiar UICollectionView?
- 3. Jak zmienić kierunek przewijania w UICollectionView?
- 4. Nie można zmienić wysokości UITableView
- 5. UICollectionView Nagłówek i stopka Zobacz
- 6. Nie można zmienić właściwości backgroundView na UICollectionView
- 7. Czy można zmienić typ i rozmiar czcionki w widoku UITableView?
- 8. Buforowanie obrazu i UICollectionView
- 9. Odświeżanie widoku UICollectionview
- 10. Nie można zmienić kolor podświetlenia niebieski UITableView
- 11. UICollectionView załaduj więcej danych
- 12. Jak dodać UIActivityIndicatorView do stopki UICollectionView?
- 13. UICollectionView willDisplayCell delegate method?
- 14. Jak zmienić backgroundColor IndexBar dla UITableView w iOS7?
- 15. Jak zmienić kolor czcionki tytułu w zgrupowanym typie UITableView?
- 16. jak zmienić komórkę wysokości w uitableview bez przeładowania danych
- 17. Jak zmienić wysokość MIĘDZY sekcjami w GROUPED UITableView?
- 18. UICollectionView nie renderuje komórek
- 19. Jak zmienić rozmiar obrazu, aby dopasować komórkę UITableView?
- 20. Przebieg alfabetyczny IOS dla uicollectionview
- 21. UITableView dotknij i przytrzymaj + przeciągnij i upuść
- 22. UITableView i UIRefreshControl
- 23. iOS: Jak zmienić orientację UICollectionViewCell?
- 24. ios - UICollectionView zmienić domyślne przesunięcie podczas poziomego stronicowania
- 25. UITableView i Cell Reuse
- 26. UICollectionView usunąć komórki (odpowiednik commitEditingStyle)?
- 27. Jak dostosować UITableView z EKEventViewController?
- 28. Jak zmienić kolumnę i zmienić wartość domyślną?
- 29. iOS6 UICollectionView i UIPageControl - jak uzyskać widoczne komórki?
- 30. UICollectionView registerClass: Metoda forCellWithReuseIdentifier łamie UICollectionView
Nie jest to bardzo słaby angielski, ale obecnie jest to kiepskie pytanie. Na czym to polega? Co próbowaliście zrobić do tej pory? –
Przykro mi, ale jestem nowicjuszem! –