2015-07-10 88 views
0

Ive得到了每個表格單元格的按鈕被選中:你將如何實現只顯示選定單元格的表格?

@IBAction func tickAction(sender: UIButton) { 
    println("SSSS") 

    if (sender.selected) { 
     sender.setImage(UIImage(named:"Unchecked.png"), forState: .Normal) 
     sender.selected = false 

    } 
    else { 
     sender.setImage(UIImage(named:"Checked.png"), forState: .Normal) 
     sender.selected = true 



    } 
} 

我試圖找到一種方法,使只有選中單元所示的表格..

回答

0

您不應該在視圖中,而是在模型中具有選定狀態。

比方說,你當前的UITableView有這就是文章的數組的數據源,我們稱之爲articles,讓我們說的第二條是:

​​

然後,你只有選擇的文章第二UITableView中會有一個的數據源:

let selectedArticles = articles.filter{ $0.selected } // Only contains 'b' 
0

所以,通常情況下,我們有一個我們用於數據源顯示行的數組。

在這裏,你會想要第二個陣列來跟蹤檢查細胞。當一個單元格被選中時,將其轉儲到這個數組中。當它變成未選中時,將其從該陣列中移除。

現在,根據您是否要顯示所有細胞或剛剛選定的單元格,確定你使用的陣列,所以你必須像邏輯散佈在你的數據源/委託方法:

var dataSourceArray: Array<CustomDataObject> 
if showingSelectedOnly { 
    dataSourceArray = self.selectedCells 
} else { 
    dataSourceArray = self.allCells 
} 

然後將此數組用於像部分中的行數,索引路徑的單元格等等。

+0

得到了一個完全獨立的表格,僅供選擇。 –

+0

基本邏輯是一樣的,你想要的東西看起來很不清楚,但無論哪種方式,你仍然應該能夠採取我已經解釋過的內容,並自己決定後半步。沒有什麼神奇的方式來做到這一點。您需要跟蹤要在表格中顯示的數據,並告訴表格顯示該數據。而已。 – nhgrif

0

爲什麼不把它包含,而不是使用一個單獨的表中選擇屬性成原始數據表中,列?

相關問題