Stworzyłem UITableView
w Interface Builder używając storyboards
. UITableView
Jest konfiguracja z static cells
oraz szereg różnych sekcjach.
Problem polega na tym, że próbuję skonfigurować moją aplikację w kilku różnych językach. Aby to zrobić, muszę UITableView
jakoś zmienić tytuły sekcji.
Czy ktoś może mi pomóc? Idealnie chciałbym podejść do problemu używając, IBOutlets
ale podejrzewam, że w tym przypadku nie jest to nawet możliwe. Wszelkie rady i sugestie będą naprawdę mile widziane.
Z góry dziękuję.
iphone
ipad
uitableview
uistoryboard
iboutlet
Szalony szympans
źródło
źródło
numberOfSectionsInTableView:tableView:
aby go wywołać .numberOfSectionsInTableView:tableView:
zaimplementowano w IB dla komórek statycznych.numberOfSectionsInTableView:
, wywoływana jest metoda tytułowa i nadpisuje scenorys. Ponieważ jest to statyczny widok tabeli, można go zastąpić metodą, która zwraca stałą liczbę @wcochranJeśli piszesz kod w języku Swift, będzie to wyglądać jak ten przykład
źródło
Użyj metody UITableViewDataSource
źródło
titleForHeaderInSection jest metodą delegata UITableView, więc aby zastosować tekst nagłówka sekcji, napisz w następujący sposób,
źródło
Należy zauważyć, że
-(NSString *)tableView: titleForHeaderInSection:
nie jest wywoływana przez UITableView, jeśli- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
jest zaimplementowana w delegacie UITableView;źródło
tekst etykiety sekcji jest ustawiony.
źródło
(oryginalny)
Miałem podobny wymóg. Miałem statyczną tabelę ze statycznymi komórkami w mojej Main.storyboard (Base). Aby zlokalizować tytuły sekcji za pomocą plików .string, np. Main.strings (niemiecki), po prostu wybierz sekcję w scenorysie i zanotuj identyfikator obiektu
Następnie przejdź do pliku string, w moim przypadku Main.strings (niemiecki) i wstaw tłumaczenie takie jak:
Dodatkowe zasoby:
źródło
Nie wiem o poprzednich wersjach
UITableView
protokołów, ale od iOS 9func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?
jest częściąUITableViewDataSource
protokołu.Nie musisz deklarować,
delegate
aby wypełnić tabelę danymi.źródło