Składniki i funkcje tabeli na platformie Xamarin.iOS
Element UITableView może mieć styl "zgrupowany" lub "zwykły" i składa się z następujących części:
- Nagłówek sekcji
- Komórki (lub wiersze, jeśli wolisz)
- Stopka sekcji
- Indeks
- Tryb edycji (obejmuje "szybkie przesunięcie do usunięcia" i przeciąganie uchwytów w celu zmiany kolejności wierszy)
Na tych zrzutach ekranu przedstawiono sposób wyświetlania wierszy sekcji, nagłówków, stopek, kontrolek edycji i indeksu.
Te części zostały opisane bardziej szczegółowo poniżej:
Nagłówek sekcji
Komórki można opcjonalnie pogrupować w sekcje, oznaczone nagłówkiem niestandardowym i/lub oznaczone stopką. Nagłówek można ustawić z wartością ciągu lub można podać widok niestandardowy, aby zezwolić na inny układ lub styl.
Cells
Komórki są głównym elementem interfejsu użytkownika dla tabeli. Po poprawnym zaimplementowaniu komórki są ponownie używane w celu zwiększenia wydajności pamięci. Istnieją cztery wbudowane style komórek i można tworzyć własne komórki niestandardowe — w kodzie lub w Projektant podczas korzystania z scenorysów.
Stopka sekcji
Opcjonalną stopkę sekcji można ustawić z wartością ciągu lub można podać widok niestandardowy, aby umożliwić korzystanie z innego układu lub stylu. Nagłówki i stopki sekcji można ustawić niezależnie.
Indeks
Indeks jest wyświetlany jako pasek znaków w prawej krawędzi tabeli. Dotknięcie lub przeciągnięcie indeksu przyspiesza przewijanie do tej części tabeli. Indeks jest opcjonalny, ale zaleca się, aby ułatwić nawigowanie po długich listach. Indeks nie jest zwykle używany ze stylem grupowanym.
Tryb edycji
Dostępnych jest kilka różnych funkcji edycji:
- Szybko przesuń, aby usunąć poszczególne komórki.
- Wprowadzanie trybu edycji w celu wyświetlenia przycisków usuwania w każdym wierszu
- Wprowadzanie trybu edycji w celu wyświetlenia uchwytów ponownego porządkowania.
- Wstawianie nowych komórek (z animacją).
W pozostałej części tego dokumentu pokazano, jak zaimplementować wszystkie te funkcje UITableView za pomocą platformy Xamarin.iOS.
Klasy — omówienie
Poniżej przedstawiono podstawowe klasy używane do wyświetlania widoków tabel:
Przeznaczenie każdej klasy zostało opisane poniżej:
- UITableView — widok zawierający kolekcję komórek wewnątrz kontenera przewijania. Widok tabeli zazwyczaj używa całego ekranu w aplikacji i Telefon ale może istnieć w ramach większego widoku na tablecie iPad (lub pojawić się w oknie podręcznym).
- UITableViewCell — widok reprezentujący pojedynczą komórkę (lub wiersz) w widoku tabeli. Istnieją cztery wbudowane typy komórek i można tworzyć komórki niestandardowe zarówno w języku C#, jak i w systemie iOS Projektant.
- UITableViewSource — wyłączna klasa abstrakcyjna platformy Xamarin.iOS, która udostępnia wszystkie metody wymagane do wyświetlenia tabeli, w tym liczbę wierszy, zwracanie widoku komórek dla każdego wiersza, obsługę zaznaczania wierszy i wiele innych opcjonalnych funkcji. Aby można było uruchomić element UITableView, musisz to zrobić w podklasie.
- NSIndexPath — zawiera właściwości wierszy i sekcji, które jednoznacznie identyfikują położenie komórki w tabeli.
- UITableViewController — gotowy do użycia element UIViewController , który ma element UITableView zakodowany jako widok i dostępny za pośrednictwem właściwości TableView.
- UIViewController — jeśli tabela nie zajmuje całego ekranu, możesz dodać element UITableView do dowolnej kontrolki UIViewController z odpowiednim zestawem ramek.
UITableViewSource zastępuje następujące dwie klasy, które są nadal dostępne w środowisku Xamarin.iOS, ale nie są zwykle wymagane:
- UITableViewDataSource — Objective-C protokół modelowany w środowisku Xamarin.iOS jako klasa abstrakcyjna. Musi być podklasowana, aby udostępnić tabelę z widokiem dla każdej komórki, a także informacje o nagłówkach, stopkach i liczbie wierszy i sekcji w tabeli.
- UITableViewDelegate — Objective-C protokół modelowany w środowisku Xamarin.iOS jako klasa. Obsługuje wybór, edytowanie funkcji i inne opcjonalne funkcje tabeli.
W tym dokumencie wszystkie przykłady używają elementu UITableViewSource i ignorują te dwie klasy. Są one wymienione tutaj, ponieważ wszystkie Objective-C przykłady znalezione w dokumentacji firmy Apple będą się do nich odwoływać, dlatego warto zrozumieć, co robią (i że można użyć interfejsu użytkownika UITableViewSource platformy Xamarin.iOS).