在tableView中我有一个Web视图,而height单元格应该等于webView,我试图通过以下代码编辑单元格的行高:
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高度使单元格的高度动态变化? 感谢。
答案 0 :(得分:3)
EXC_BAD_ACCESS
的原因是您尝试访问tableView的heightForRowAtIndexPath:
方法中的单元格。该单元格尚未创建,并且不存在。
tableview调用heightForRowAtIndexPath:
方法,后跟cellForRowAtIndexPath:
来创建单元格。
调用第一个heightForRowAtIndexPath:
以获取索引路径处单元格的高度。在调用cellForRowAtIndexPath:
之后,为相应的索引路径创建了一个单元格。
在cellForRowAtIndexPath:
中创建单元格并在此之前调用heightForRowAtIndexPath:
,因此您无法访问其中的单元格(因为它尚未创建,否则如上所述EXC_BAD_ACCESS
)。并且为了返回相应索引路径的单元格的动态高度,您应该根据数据模态计算高度,而不是尝试访问单元格。