Я создал UITableView
в Interface Builder, используя storyboards
. Он UITableView
настроен с static cells
несколькими различными разделами.
Проблема, с которой я столкнулся, заключается в том, что я пытаюсь настроить свое приложение на нескольких разных языках. Для этого мне нужно иметь возможность как-то менять UITableView
заголовки разделов.
Пожалуйста, кто-нибудь может мне помочь? В идеале я бы хотел подойти к проблеме, используя, IBOutlets
однако подозреваю, что в данном случае это невозможно. Любые советы и предложения были бы очень признательны.
Заранее спасибо.
iphone
ipad
uitableview
uistoryboard
iboutlet
Сумасшедший шимпанзе
источник
источник
numberOfSectionsInTableView:tableView:
чтобы это вызвало.numberOfSectionsInTableView:tableView:
реализован в IB для статических ячеек.numberOfSectionsInTableView:
, то вызывается метод title и перекрывает раскадровку. Поскольку это статическое табличное представление, вполне нормально переопределить его с помощью метода, который возвращает постоянное число @wcochranЕсли вы пишете код на Swift, это будет выглядеть примерно так:
источник
Используйте метод UITableViewDataSource
источник
titleForHeaderInSection - это метод делегата UITableView, поэтому, чтобы применить текст заголовка раздела, напишите следующее:
источник
Обратите внимание, что
-(NSString *)tableView: titleForHeaderInSection:
не вызывается UITableView, если- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
реализовано в делегате UITableView;источник
устанавливается текст метки раздела.
источник
(оригинал)
У меня было аналогичное требование. У меня была статическая таблица со статическими ячейками в моей Main.storyboard (Base). Чтобы локализовать заголовки разделов с использованием файлов .string, например Main.strings (немецкий), просто выберите раздел в раскадровке и обратите внимание на идентификатор объекта.
После этого перейдите в свой строковый файл, в моем случае Main.strings (немецкий), и вставьте перевод, например:
Дополнительные ресурсы:
источник
Я не знаю о прошлых версиях
UITableView
протоколов, но начиная с iOS 9,func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?
это частьUITableViewDataSource
протокола.Вам не нужно объявлять,
delegate
чтобы заполнить таблицу данными.источник