Установка типа аксессуара UITableViewCell для некоторых ячеек, но не для всех

StackOverflow https://stackoverflow.com/questions/2541669

Вопрос

У меня есть 8 ячеек, которые создаются в моем UITableViewController.Я хотел бы знать, как я могу показать индикатор раскрытия на 4-й и 8-й ячейках.Прямо сейчас я строю это в

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

хотя я полностью осознаю, что в каждую ячейку будет добавлен индикатор раскрытия

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
Это было полезно?

Решение

Используйте простой оператор if:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ... // do whatever
    UITableViewCellAccessoryType accessoryType = UITableViewCellAccessoryNone;
    if (indexPath.row == 3 || indexPath.row == 7) {
        accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }
    cell.accessoryType = accessoryType;
    ... // do whatever
}

Другие советы

Вы знаете indexPath, так почему бы просто условно не применить индикатор раскрытия, когда

if((indexPath.row == 3) || (indexPath.row == 7))

?

(indexPath.row, конечно, основан на 0...4-е — 3, а 8-е — 7.И вам также следует использовать #defines или какой-либо другой способ избежать попадания туда магических чисел.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top