tableView 的cell中添加了计算cell的高度并且调用代理方法,返回给视图控制器
当服务器返回数据源的时候,刷新tableView。
但是,此时执行的cellForRowIndexPath 的indexPaht 是从第四行开始的,,
将前边的几个给跳过了,
我试着将cell的高度写成定值,
结果cell的数量正常,
这会是什么问题?
迷茫2017-05-02 09:31:21
고도 계산이 늦어지는 것 같습니다.
tableView의 표시 순서는 대략 다음과 같습니다.
요청 sectionNumber
및 numberForSection
에 섹션과 셀이 몇 개 있는지 가져옵니다. 인터페이스에 표시될 셀의 높이를 가져오려면 heightForRow:atIndexPath
을 요청하세요.
은 cellForRow
에게 이 셀의 인스턴스를 가져오도록 요청합니다.
그런 다음 셀의 높이 등을 설정합니다. 레이아웃 후 willDisplay
등의 콜백 메서드를 호출하여 인터페이스에 표시합니다.
따라서 tableView를 새로 고칠 때 높이 부분 처리는 셀 인스턴스가 셀 높이를 계산하도록 한 다음 컨트롤러를 다시 호출하는 대신 데이터 소스에 따라 먼저 셀 높이를 계산하는 것이어야 합니다. 물론, 셀 내에서 계산할 수도 있습니다. 예를 들어, 셀에 들어오는 셀 데이터를 기반으로 계산되는 클래스 메서드가 있고 컨트롤러가 이 메서드를 적극적으로 호출합니다. 대략적인 코드는 다음과 같습니다.
컨트롤러 또는 tableView의 대리자 구현 클래스에서:
으아아아MyTableViewCell:
으아아아