Обновите значения для UILabel, помещенного в заголовок раздела UITableViews. - PullRequest
3 голосов
/ 19 сентября 2010

Я бы хотел, чтобы заголовок моего раздела отображал сумму значений в моих строках. Поэтому я реализую:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

делегируйте функцию и поместите UILabel в пользовательское представление, которое я здесь создаю.

Если бы это был UITableViewCell, я бы построил ячейку, если она не существует, затем обновил бы ее, или, если она существует, - только обновил бы ее.

Я не знаю, какой «шаблон» использовать для обновления моего заголовка раздела. Либо в UITableView есть «правильный путь» сборки, но я не могу найти «updateSectionHeaderForSection» и вызывать его только тогда, когда я изменяю значение строки.

Что меня удивляет, так это то, как UITableView работает с заголовками, вызывает ли он viewForHeadersInSection только один раз при reloadData / instantiation или он вызывает его постоянно, то есть выполняет ли он повторное создание представления при прокрутке, если Я помещаю этот код в viewController?:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

        UIImageView *shadow = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"topbar.png"]];

}

А как заставить заголовок раздела обновить представление, например, вызвать updateRowsAtIndexPaths, когда я изменил значение, которое должно отображаться?

Кажется, я не могу найти, что Apple взяла это на себя в Руководстве по программированию UITableView.

Заранее благодарим за предоставленную помощь.

1 Ответ

0 голосов
/ 19 сентября 2010

Недавно мне пришлось сделать нечто подобное, так как я нарисовал собственный вид в viewForHeaderInSection.В этом представлении содержалось несколько различных компонентов, и для метки, в которой я хотел показать итоговое значение, я дал ему тег

detailLabel.tag=100001;

Затем, когда бы я ни захотел обновить итоговое значение, я получаю ассоциированное представление

UILabel *total = (UILabel*)[self.view viewWithTag:100001];

И обновите его до желаемого значения:

total.text = @"1234";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...