2015-10-14 62 views
0

所以我試圖掌握使用indexpathforselectedrow嵌套數組邏輯!因此,我不能用例子來解釋我的困惑。與indexpathforselectedrow數組邏輯

我的第一個想法:可以說我有

var colors: array = [「red」,」orange」,」yellow」] 

在表視圖。
如果我得到了orange的indexpathforselectedrow,那麼這個索引值是多少?我假設這將是section = 0,row = 1,so [0] [1]。那是對的嗎?或者因爲這是一個簡單的數組,這個值是否只是一個值? 1?

其次,如果我有一個更先進的陣列(請讓我知道如果這個陣列設置是正確的)

var morecolor: [[「green」,」blue」,」teal」][「light green」, 「dark green」] 
[「light blue」, 「dark blue」][「light teal」, 「dark teal」]] 

,如果我選擇了綠色(第一陣列/陣列0),想Segue公司光/深綠色數組,第二個數組(或第一個),我將如何去做這件事?

回答

1

索引路徑(NSIndexPath)由段和行組成。兩者都是整數,基於零。

表中的第一部分是第0部分,第2部分是1等。

您實現numberOfSections來告訴您需要多少節,numberOfRowsInSection指出每節中有多少行(該方法向您傳遞它需要的行數)。

通常,您有一個模型來表示要顯示的數據,並且您在cellForRowAtIndexPath中索引該模型。

如果您有一維模型,比如說一個簡單的顏色列表,那麼您可能只有一個部分,以及與模型中的顏色一樣多的行。對應於任何行的顏色會是這樣的:

model.colors[indexPath.row] 

你可以在這裏忽略部分,因爲你知道這是始終爲零(你只有1節)。

如果您有一個二維模型,比如說一組主題,每個主題都由多種顏色組成,那麼您將擁有與主題一樣多的部分,以及每個主題中的顏色。對應於任何行的主題和顏色會是這樣的:

model.theme[indexPath.section].colors[indexPath.row] 

許多表視圖方法使用索引路徑,所以這是非常有用知道他們是如何工作的。

0

T0回答你的第一個問題,是的,你說這樣的調用會返回第0行第0行的項的索引路徑是正確的,但實際上是因爲它是索引路徑而不是常規整數表示行不表示爲1 2 3 4 ...等,而是0 64 128等...因此,爲了得到返回的行,可以使用indexPath.row來訪問它,它返回所選行的int表示形式。