2016-07-18 66 views
0

我製作了一個原型單元格,並將數據從數據庫加載到表格中的單元格中。 每個單元都有一個標籤和3個按鈕就像這樣:如何識別iOS中的表格行?

enter image description here

如果我點擊例如按鈕「符合標準」,我怎麼能在我拍了拍按鈕哪一行鑑別?

因此,例如,當我按下給定行的「符合標準」按鈕時,我想將該行的背景顏色更改爲紅色。我該怎麼做?

我有一個CustomCell.swift類,我配置原型單元格和一個TableView.swift類,在這裏我配置表格。

回答

0

嘗試控制將按鈕拖動到您的CustomCell.swift類並輸入名稱並在彈出菜單上選擇「Action」。然後,在生成的方法中,您可以調用self.backgroundColor = UIColor.redColor()或執行任何其他您需要的操作。

編輯:

這是我認爲你應該做些什麼來改變高度:

讓你的所謂的「擴展」什麼的小區類,布爾。然後,進入你的表格視圖類並實施heightForRowAtIndexPath方法。在該方法中,檢索單元格並檢查它是否展開,如果是,則返回更高的高度。現在,讓它重新加載,您將需要存儲在每個單元格的表格視圖的引用,因爲它說,在這裏:Reference from UITableViewCell to parent UITableView?

在被點擊的方法,你已經作出,其中背景設置爲紅色,你會需要撥打:

tableView.beginUpdates() 
tableView.endUpdates() 

其中tableview是您已存儲的弱引用。另外,在該方法中,您當然需要添加self.expanded = true

編輯2:

你知道嗎,也許它更容易只是這樣做:

weak var _tableView: UITableView! 

...

func tableView() -> UITableView! { 
    if _tableView != nil { 
     return _tableView 
    } 

    var view = self.superview 
    while view != nil && !(view?.isKindOfClass(UITableView))! { 
     view = view?.superview 
    } 

    self._tableView = view as! UITableView 
    return _tableView 
} 
+0

這工作,完善。如果我想改變身高怎麼辦? – nethuszar

+0

檢查編輯@nethuszar –

+0

「您將需要在每個單元格中存儲對錶格視圖的引用,正如它在此處所述的:」您能解釋這部分嗎?看來他們使用Objective-C,我並不真正瞭解它。 – nethuszar