Objective-c - 처음 몇 개의 데이터 소스만 tableView에 표시되지 않습니다. 아래로 드래그하면 완전히 표시됩니다. 이유는 무엇입니까?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-02 09:29:21
0
1
619

tableView의 셀이 추가되어 셀의 높이를 계산하고 뷰 컨트롤러에 반환되는 프록시 메서드를 호출합니다.
서버가 데이터 소스를 반환하면 tableView를 새로 고칩니다.
그런데 이때 실행된 cellForRowIndexPath의 indexPaht는 4번째 줄부터 시작하는데,
처음 몇 개는 건너뛰고,
셀의 높이를 고정값으로 쓰려고 했더니
결과가 나왔습니다. 셀 수가 정상이라는 건가요?
무엇이 문제인가요?

曾经蜡笔没有小新
曾经蜡笔没有小新

모든 응답(1)
迷茫

고도 계산이 늦어지는 것 같습니다.
tableView의 표시 순서는 대략 다음과 같습니다.
요청 sectionNumbernumberForSection에 섹션과 셀이 몇 개 있는지 가져옵니다. 인터페이스에 표시될 셀의 높이를 가져오려면
heightForRow:atIndexPath을 요청하세요.
cellForRow에게 이 셀의 인스턴스를 가져오도록 요청합니다.
그런 다음 셀의 높이 등을 설정합니다. 레이아웃 후 willDisplay 등의 콜백 메서드를 호출하여 인터페이스에 표시합니다.

따라서 tableView를 새로 고칠 때 높이 부분 처리는 셀 인스턴스가 셀 높이를 계산하도록 한 다음 컨트롤러를 다시 호출하는 대신 데이터 소스에 따라 먼저 셀 높이를 계산하는 것이어야 합니다. 물론, 셀 내에서 계산할 수도 있습니다. 예를 들어, 셀에 들어오는 셀 데이터를 기반으로 계산되는 클래스 메서드가 있고 컨트롤러가 이 메서드를 적극적으로 호출합니다. 대략적인 코드는 다음과 같습니다.

컨트롤러 또는 tableView의 대리자 구현 클래스에서:

으아아아

MyTableViewCell:

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿