2015-04-15 81 views
0

在tableView我有一個web視圖,並且高度單元格應該等於webView,我試圖通過以下代碼編輯單元格的行高度:編輯tableview的行高Swift

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    let cell = tableView.cellForRowAtIndexPath(indexPath) as ActivitiesCell 

    return cell.webView.scrollView.contentSize.height 
} 

但我得到了初始化VAR小區時此異常:「線程1:EXC_BAD_ACCESS(代碼= 2,地址= 0x306d2c): 所以我怎樣才能讓視的WebView高度的細胞活力的高度 感謝

回答

3

EXC_BAD_ACCESS的原因是您正試圖訪問tableView的heightForRowAtIndexPath:方法。該單元格尚未創建並且不存在。

桌面視圖調用heightForRowAtIndexPath:方法後跟cellForRowAtIndexPath:來創建單元格。

首先調用heightForRowAtIndexPath:以獲取索引路徑處的單元高度。在調用cellForRowAtIndexPath:之後,將爲相應的索引路徑創建單元。

由於在cellForRowAtIndexPath:heightForRowAtIndexPath:中創建了單元格,因此您無法訪問該單元格(因爲它尚未創建,否則爲EXC_BAD_ACCESS)。並且爲了返回相應索引路徑的單元格的動態高度,您應該根據數據模式計算高度,而不是嘗試訪問單元格。

+0

你打算創建一個webView變量,並嘗試計算它的高度,然後返回heightForRowAtIndexPath的高度? – Rawan

+0

如果您能夠使用heightForRowAtIndexPath中的數據計算單元格的高度,那麼您應該計算其中的高度,否則插入一個檢查if(動態高度計算)返回cellsDynamicHeight否則返回默認高度。 在cellForRowAtIndexPath中返回默認高度創建單元格:並創建web視圖,讓內容在成功加載時加載,而不是根據內容計算高度,更新模式並重新加載相應的行。 –

+0

重新加載相應的行將從heightForRowAtIndexPath返回動態計算的高度: –