我正在製作UICollectionView
其中一些UICollectionViewCells
包含UITableView
。UITableView裏面的UICollectionViewCell,所有UITableViewCells突出顯示時,單擊單元格
這很好,一切都很好,直到我點擊了UICollectionViewCell
UITableView
以外的地方。這會導致在表中的所有UITableViewCells
上調用setHighlighted
方法。
下面是UICollectionViewCell
的一個粗糙的scetch。 UITableView
僅從 「單元格」到「單元格3」。點擊此表以外的任何位置,但在UICollectionViewCell
內部會導致單元格高亮顯示。
-------------------------
| Title goes here |
| |
-------------------------
| |
| Cell one |
-------------------------
| |
| Cell two |
-------------------------
| |
| Cell three |
-------------------------
| Button outside table |
|-----------------------|
調用堆棧看起來像這樣。
[MyTableViewCell setHighlighted:]
[UICellHighlightingSupport highlightView:]
UIApplicationMain
main
好像UICollectionViewCell
轉發高亮命令到所有單元格。
我通過在我的UITableViewCell
子類中重載setHighlighted
方法而未調用超級實現來解決此問題。雖然這看起來有點不順利,我想知道這種行爲是否可以以某種方式避免。
編輯: 我認爲這種行爲是來自當UICollectionCellView
電話setHighlighted其所有的孩子。我瞭解的其他大多數情況下都是有用的。
嘗試子類化您的UITableView併爲其添加空setHighlighted:方法。 –
「我通過重載UITableViewCell子類中的setHighlighted方法而不是調用超級實現來解決這個問題,雖然這看起來有些冒失,但我不知道這種行爲是否可以避免。」 – Nailer
你檢查我的答案了嗎?只是告訴集合視圖不突出顯示tableview有什麼問題? – micantox