0

У меня есть TableViewController со статическими ячейками и заголовками разделов. Я пытался позвонить indexPath.row однако, они не являются уникальными .. НапримерIndexPath.row не уникален для статических ячеек

TableView: 
- Header 1 
    - Cell1 indexPath = 0 
- Header 2 
    - Cell2 indexPath = 0 
    - Cell3 indexPath = 1 
    - Cell4 indexPath = 2 

Что такое правильный способ получения уникальных идентификаторов для строк?


Поскольку использование этой марки 2 клетки имеют один и тот же indexPath

override func tableView(tableView: UITableView, willSelectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? { 
    print(indexPath.row) 

    if indexPath.row != 0 { 
    return indexPath 
    } 

    return nil 
} 

ответ

5

Вы, кажется, не обращая внимания indexPath.section. Комбинация раздела и строки однозначно определяет путь указателя. Строка уникальна в пределах ее раздела.

2

NSIndexPath состоят из row и section, сочетание section и row является уникальным Cell1 в вашем случае имеет indexPath.section == 0 и indexPath.row == 0 CELL2 имеет indexPath.section == 1 и indexPath.row == 0

+0

Так, например, для CELL2, я должен использовать 'если indexPath.section == 1 && if indexPath.section == 0 {} '? – senty

+1

FYI - 'section' и' row' 'NSIndexPath' на самом деле является расширением, предоставляемым' UITableView'. 'UICollectionView' добавляет' section' и 'item'. Исходный 'NSIndexPath' не обладает такими свойствами. Он просто имеет набор индексов. – rmaddy

+1

@senty Да, для Cell2 это будет раздел 1, строка 0. – rmaddy