2017-10-11 23 views
0

我有我的UITableViewCells工作正常。我希望能夠點擊菜單按鈕,擴大單元格的高度,露出一組按鈕按圖像:無法解決垂直展開的UITableViewCells顯示按鈕

Image

我的代碼如下:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    if indexPath.row == Globals.selectedRowIndex { 
     return 335 
    } else { 
     return 125 
    } 
} 

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) { 
    if indexPath.row == Globals.selectedRowIndex { 
     Globals.selectedRowIndex = -1 
    } else { 
     Globals.selectedRowIndex = indexPath.row 
    } 
    tableView.reloadData() 
} 

儘管如此,這些按鈕全都在小尺寸上被擠壓在一起。我認爲他們只會被裁剪出來。我想我可以通過讓他們隱藏點擊。我還沒有嘗試過。

我也無法爲它們設置高度,因爲我的約束似乎不適用於單元格內的任何東西。我不知道爲什麼。我可以設置自動調整但不限制。

我想雖然有可能是一個完全更好的方法來做到這一點,我失蹤了。任何指針將不勝感激。

+0

請嘗試這個庫:https://github.com/younatics/ExpandableCell –

+0

@Manigandasaravanan檢查了這一點。忘記我可以找一個圖書館 – Sean

+0

我已經多次回答這個問題,併爲此在github上做了一個示例項目,查看它:https://github.com/bavarskis/ExpandingTableViewCell.git –

回答

0

首先迭代到tableCount並賦值爲false。例如,

for i=0;i<tablecount;i++ 
{ 
    self.isSelected.append(false) 
} 

例如,如果你有5個單元的手段,你將有這樣的價值觀:

isSelected = [false, false, false, false, false] 

然後,同時擴大細胞分配True.Otherwise分配假

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

     selectedIndex[indexPath.row] = indexPath.row; 
     if isSelected[indexPath.row] 
     { 
      isSelected[indexPath.row] = false 
      self.tableView.reloadRowsAtIndexPaths([tableView.indexPathForSelectedRow!], withRowAnimation: .Fade) 

     } 
     else 
     { 
      isSelected[indexPath.row] = true 
      self.tableView.reloadRowsAtIndexPaths([tableView.indexPathForSelectedRow!], withRowAnimation: .Fade) 

     } 
} 
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
{ 
       if isSelected[indexPath.row] 
       { 
        return 275.0 
       } 
       else 
       { 
        return 110.0 
       } 

}