Chcę utworzyć prototypową komórkę, która może być używana w różnych widokach tabel za pomocą storyboardu. Jak to zrobić? Wszelkie wskazówki są mile widziane.Komórka prototypowa wielokrotnego użytku UITableView
Odpowiedz
Nie sądzę, że można utworzyć prototypową komórkę i udostępnić ją między tabelami w serii ujęć, ale można utworzyć prototypową komórkę w stalówce, a następnie załadować ją w metodzie ViewDidLoad, a następnie użyć w widoku tabeli. . To naprawdę bardzo proste, oto jak ...
A. dodać plik nib:
1. Wybierz nowy plik ... 2. Wybierz IOS -> Interfejs użytkownika
3. Wybierz "Empty" -> to doda nowy plik .xib do twojego projektu.
4. Przeciągnij UITableViewCell z przeglądarki obiektów do pliku XIB i dostosuj do swoich potrzeb
5. Użyj panelu Narzędzia, aby zmienić właściwości -> edytowanie stalówki jest bardzo podobny do edycji scenorysu.
6. Upewnij się, że nazwałeś komórkę - wybrałem komórkę nazwaFromNib, ale prawdopodobnie będziesz potrzebować czegoś innego.
B. Załaduj UITableViewCell w metodzie viewDidLoad każdego stołu:
- (void)viewDidLoad
{
// load the cell in the nib - the nib can only contain this one UITableViewCell
[self.tableView
registerNib:[UINib nibWithNibName:[self @"nibFileNameWithoutExtension"]
bundle:[NSBundle mainBundle]]
forCellReuseIdentifier:[self @"cellFromNib"]];
}
C. De-kolejce stalówki za tableViewCell ...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellFromNib" forIndexPath:indexPath];
// customize your cell here...
}
D. Dodaj "atrapę" prototyp na komórkę Twój TableView w Twoim scenopisie. Zrób segue z tej "obojętnej" komórki do widoku, który chcesz wyświetlić po wybraniu komórki - pamiętaj, aby nadać nazwę segue - nazam ją @ "theSegue" dla tego przykładu. Odniesiesz się do tej segue w swoim kodzie.
E. Na koniec dodać kod do Segue z tej celi ...
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// this is basically what the storyboard does under the hood...
// make sure you have a "dummy" prototype cell with this segue name for each
// tableview that uses this cell
[self performSegueWithIdentifier:@"theSegue" sender:self];
}
Jeśli chcesz się specjalizować kodu komórek, utworzyć klasę, która podklasy UITableViewCell
myślę, że to wszystko, co potrzeba.
Powiedziałbym, nie bój się robić czegoś takiego, ponieważ, jeśli poważnie myślisz o programowaniu IOS, dowiesz się czegoś nowego. To naprawdę robi o wiele lepszy kod wielokrotnego użytku.
Czy mógłbyś bardziej szczegółowo zrozumieć, co oznacza prototyp w twojej sytuacji? –