2016-02-04 79 views
0

對於我一直在構建的ios應用程序,我一直有一個問題很長一段時間。我有一個Uitableview,具有動態屬性,嵌入在我的視圖控制器中。我想要做的是調整所有單元格以填充表格視圖。我曾嘗試過:動態更改所有的Uitableviewcells高度以填充swift中的uitableview

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    tableView.reloadData() 
    let height = tableView.contentSize.height 
    return height 
} 

但是這只是返回零爲uitableview的高度。

幫助將不勝感激。

回答

2

您不想從此委託方法調用reloadData(),因爲此方法因爲數據正在重新加載而被調用。

事實上,如果所有單元格的高度都相同,則根本不想使用此方法。只需設置表視圖的rowHeight屬性。

假設這是從一個視圖控制器發生的事情,我想重寫viewDidLayoutSubviews()得到通知時表視圖大小的變化,並設置行的高度有:

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 
    tableView.rowHeight = tableView.bounds.height 
} 

您可能會或可能不會需要添加reloadData()在那裏獲取表視圖來更新。先嚐試一下。設置行高可能會自動觸發重新加載。

另請注意,我不使用contentSize來獲得高度。這是所有單元格的高度,並且取決於您設置的行高。所以再次使用它會變得有點圓。

+0

這假設您希望您的所有單元格都是表格視圖的高度。從你的問題來看,這並不是很清楚。如果您希望所有單元格一次都可見,則只需將高度除以表格視圖中的行數即可。 –

+0

工作。感謝您的快速響應 –

相關問題