правильный выбор indexPath.row в TableView, который имеет несколько разделов? - PullRequest
2 голосов
/ 21 января 2010

У меня есть таблица с несколькими разделами. Каждый раздел имеет разное количество строк. когда я выбираю конкретную строку в определенном разделе, как я могу найти правильный indexPath.row ? любой учебник?

Ответы [ 2 ]

15 голосов
/ 21 января 2010

Я не знаю, что вы подразумеваете под «правильным». indexPath.row всегда локально для раздела, что означает

section 0
---------
[ row 0 ]
[ row 1 ]
[ row 2 ]
---------    
section 1
---------
[ row 0 ]
[ row 1 ]
---------
section 2
---------
[ row 0 ]
[ row 1 ]
[ row 2 ]
[ row 3 ]
---------    

Чтобы получить глобальную строку, вы можете вычислить частичную сумму.

NSUInteger row = 0;
NSUInteger sect = indexPath.section;
for (NSUInteger i = 0; i < sect; ++ i)
   row += [dataSource tableView:tableView numberOfRowsInSection:i];
row += indexPath.row;
return row;
1 голос
/ 21 января 2010

UITableview отправляет делегату

willSelectRowAtIndexPath: и didSelectRowAtIndexPath: сообщение

и отправьте

UITableViewSelectionDidChangeNotification уведомления наблюдателей.

Прослушивая эти сообщения, вы узнаете, какие строки выбраны.

В xCode есть шаблон с UITableView, который является хорошей отправной точкой для изучения UITableView. Вы можете реализовать его вокруг NSArray строк в качестве источника данных. Таким образом, ваши усилия по обучению будут сосредоточены на коде UITableView.

Лучший способ на самом деле - создать простой UITableView и детально описать методы делегатов вместе с любыми вызовами наблюдателей.

Справочник по классу яблок проделает вам долгий путь.

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