Как показать несколько пользовательских ячеек и пользовательский заголовок раздела в одном uitableview? - PullRequest
1 голос
/ 12 января 2010

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

Первая строка первого раздела содержит пользовательские строки, остальные ячейки первого раздела - это еще одна пользовательская ячейка. Хотя каждый раздел будет содержать разные типы ячеек.

Так каков наилучший подход для достижения этого при управлении скоростью просмотра таблицы? В настоящее время я использую пользовательские ячейки с помощью конструктора интерфейса. Есть ли способ, которым я мог бы добавить разные вещи в разные секции в ячейках?

1 Ответ

3 голосов
/ 12 января 2010

Старайтесь хранить как можно меньше типов клеток. Если одна ячейка типа похожа на другую, но с одной или двумя дополнительными метками, просто установите ее в одной и той же ячейке и оставьте метки пустыми в ячейке, которая им не нужна. Таким образом, они могут быть в одной очереди повторного использования. Если ячейки достаточно разные, вам может понадобиться больше очередей. Просто создайте их экземпляр с другим cellIdentifier, и они будут добавлены в очередь для этого идентификатора.

например.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell;

    if(indexPath.row == 0) {
         cell = [tableView dequeueReusableCellWithIdentifier:@"firstRowCell"];

        if(!cell) {
            cell = [[UITableViewCell alloc] inittWithFrame:CGRectZero reuseIdentifier:@"firstRowCell"];
        }

        // -- first cell setup

    } else {
         cell = [tableView dequeueReusableCellWithIdentifier:@"genericRowCell"];

        if(!cell) {
            cell = [[UITableViewCell alloc] inittWithFrame:CGRectZero reuseIdentifier:@"genericRowCell"];
        }

        // -- generic cell setup
    }

    // -- common cell setup

    return cell;

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