2017-09-22 17 views
0

我想訪問我的集合視圖中的前一個單元格(索引path.item - 1),以便在單元格中滿足某些條件時更改某些設置在指數path.item如何獲得索引處的單元path.item - 1在集合視圖中

現在我嘗試這樣做:

 let previousCell = collectionView.cellForItem(at: indexPath - 1) 

但是,這並不因爲工作 - 1是從指數路徑的整數值垂頭喪氣。

我該如何獲得這個細胞?

回答

2

請檢查:

let previousCell = collectionView.cellForItem(at: IndexPath(row: indexPath.row-1, section: indexPath.section)) 

要使用標識符獲取細胞:

let prevIndexPath = IndexPath(row: indexPath.row-1, section: indexPath.section) 
let previousCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: prevIndexPath) 
+0

嘿謝謝你的高效答覆。它確實有效,但只是給出了一個uicollectionviewcell。是否有可能獲得具有特定標識符的此單元格? – AlexVilla147

1

「以前的細胞」甚至是什麼意思?你是指同一部分,但前一行?然後用小於這一行的row構建索引路徑。

但是,這個問題本身似乎表明了對錶視圖如何工作的完全誤解。你根本不需要「訪問」任何單元。更新您的型號並重新加載表(或相關單元格)。

+0

VOR感謝您的回答。我正在創建一個聊天應用程序。如果有人正在連續閱讀三條消息。我只想在第三條消息旁邊顯示他的個人資料圖片,類似於Facebook的信使。這是我的第一個想法,如何解決這個問題,因爲現在旁邊的每封郵件都顯示了檔案圖片 – AlexVilla147

+0

,如果你只是在這裏討厭,請不要以更積極的方式回答這些問題。 – AlexVilla147

+0

沒有人「討厭」。正如馬特所說,你的問題表明你誤解了如何使用表格視圖。 iOS使用MVC設計模式,其中視圖對象顯示來自模型對象的數據。如果要更改位於不同indexPath的某些數據,則需要更改該位置的數據MODEL,然後告訴該單元更新。 –

相關問題