2016-04-27 26 views
0

Ich habe einen TableViewController mit statischen Zellen und Abschnittsüberschriften. Ich habe versucht, indexPath.row jedoch zu nennen, sie sind nicht einzigartig .. Zum BeispielIndexPath.row ist nicht eindeutig für statische Zellen

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

Was ist der richtige Weg, eindeutige Kennungen für die Zeilen zu bekommen?


Da mit dieser Marke 2-Zellen haben die gleiche indexPath

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

    if indexPath.row != 0 { 
    return indexPath 
    } 

    return nil 
} 

Antwort

5

Sie scheinen indexPath.section ignoriert zu werden. Die Kombination aus Abschnitt und Zeile definiert den Indexpfad eindeutig. Eine Zeile ist innerhalb ihres Abschnitts eindeutig.

2

NSIndexPath bestehen aus row und section, Kombination von section und row ist einzigartig Cell1 in Ihrem Fall hat indexPath.section == 0 und indexPath.row == 0 Cell2 hat indexPath.section == 1 und indexPath.row == 0

+0

So zum Beispiel für Cell2, sollte ich 'wenn indexPath.section == 1 && if indexPath.section == 0 {} '? – senty

+1

FYI - die 'section' und' row' von 'NSIndexPath' sind eigentlich eine Erweiterung von' UITableView'. 'UICollectionView' fügt' section' und 'item' hinzu. Der ursprüngliche 'NSIndexPath' verfügt nicht über solche Eigenschaften. Es hat nur eine Reihe von Indizes. – rmaddy

+1

@senty Ja, für Cell2 wäre es Abschnitt 1, Zeile 0. – rmaddy