2017-05-29 77 views
0

我有一個自定義的tableview細胞,如果單擊單元格,然後在單元應當得到擴大,如果沒有的話單擊單元格不應該擴大。定製IOS的tableview細胞不能正常工作

還有一個自定義視圖,如果單元格被點擊,我想要增加自定義視圖的高度,如果沒有單擊單元格,那麼它應該是一定的height.Below此代碼設置在cellForRowAt

if TableView.rowHeight == 126 { 

      cell.CustomView = UIView(frame: CGRect(x: 7, y: 8, width: 359, height: 20)) 

      return cell 
     } 
     else{ 

     } 

但我開始改變了視線的高度的代碼不工作,我不知道從哪裏有

去當電池沒有點擊這是我的自定義視圖看起來像:enter image description here

瓦單元格被點擊這是自定義視圖的樣子:enter image description here

正如你可以看到我的問題是當單元格沒有被點擊時,視圖的底部是一條直線,但是當單擊單元格時,底部是圓形的。我希望視圖也可以在單元格未被點擊時四捨五入。

+0

你叫'reloadData'在'didSelectRow'? –

+0

設置自定義視圖的高度約束,擴大和收縮時相應地改變它。 –

回答

1

呼叫beginUpdatesendUpdates迫使tableView更新的高度

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    // new row selected 
    self.selectedIndex = indexPath 
    tableView.beginUpdates() 
    tableView.endUpdates() 
} 

See also

+0

它更新單元格的高度,唯一不做的是更新視圖的高度。該視圖設置在300的高度,並且點擊時,高度保持300,但是當它不點擊視圖的高度仍然是300 – juelizabeth

1

添加下面的代碼。希望這會幫助你。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 

     //performSegue(withIdentifier: "toDetail", sender: self) 
     self.isExpanded = true 
     self.selectedIndex = indexPath 
     tableView.beginUpdates() 
     tableView.endUpdates() 
     self.isExpanded = false 
    } 
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) { 

     self.selectedIndex = IndexPath() 
     tableView.beginUpdates() 
     tableView.endUpdates() 
    } 

禮貌:@ JOZE Ws的

+0

我已經更新了我的問題,希望能夠使我的問題更清楚一點非常感謝你很多 – juelizabeth

+0

你的問題的更新已經變成了完全不同的問題(雖然還不夠清晰)。所以,下一次在有人投入時間之前就形成一個明確的問題。 @juelizabeth – Roy

+0

對不起,你浪費了你的時間 – juelizabeth