2017-10-04 47 views
0

我有一個靜態的UITableView,如第一個圖像所示,但現在我需要添加一個Button,當我觸摸它時,會在表格中添加一個動態單元格,如第二個圖像所示,問題是我無法將新單元格添加到靜態UITableview。 完成此操作的最佳實踐是什麼?以靜態UITableView編程添加行

first image second image

+0

這意味着你需要一個動態表格視圖。或者你可以使用尤里卡。 – Sweeper

回答

0

基本上靜態的TableView不應該在運行時被改變(除了細胞含量)。這在docs中明確提到:

不管顯示的具體信息如何,當表格不改變其佈局時使用靜態單元格。

在這種情況下的最佳做法是創建一個動態電視並填充適當數量的單元格。您需要使用DataSource delegate才能這樣做。數據源本身通常是通過字典或數組完成的。

E.g.你有一個字典'phoneNumbers'和一個應該添加一個新的按鈕。

首先,您將一個選擇器添加到cellForRowAtIndexPath中的按鈕:例如via標籤。然後,按鈕動作時,會是什麼樣子:

-(void)yourButtonClicked:(UIButton*)sender 
{ 
    [self.phoneNumbers setObject:phoneNumber forKey:numberKey]; 
    [self.tableView reloadData]; 
} 

//Swift 
func yourButtonClicked(sender: UIButton) { 
    self.phoneNumbers["numberKey"] = phoneNumber 
    self.tableView.reloadData() 
} 

(對不起它的對象 - 但我肯定迅速是不是在這一點上非常不同)

需要reloadData刷新的TableView佈局後對DataSource對象進行更改。在這種情況下,它非常接近「重繪」。

在聯繫人應用程序中,您顯示的對象的圖像是'(555)555-5555'NSString,關鍵字可能是'other'。您可以使用和存儲這些你喜歡

所以,畢竟你只需要設置numberOfRowsInSection任何方式:所以,對於要在其中添加細胞部分返回對象的個數在字典PHONENUMBERS

+0

謝謝,我明白如何使電話單元的部分,但哪些是使我的tableview中動態當前靜態部分的最佳方式。謝謝! –

+0

您需要在XIB/Storyboard屬性檢查器中將'View'的'Content'選項從'Static Cells'更改爲'Dynamic prototypes'。確保每個細胞原型具有唯一的細胞標識符。 –

相關問題