질문은 제목과 같습니다.
시나리오: 현재 tableviewcell은 세 개의 뷰로 구성되어 있으며 cell.contentView에 추가됩니다. 새로 고칠 때 셀 중 하나의 한 보기에서만 콘텐츠를 새로 고치면 됩니다.
그러나 Refresh Cell 메소드가 실행되면 세 개의 뷰가 함께 새로 고쳐지고 데이터가 변경되지 않은 뷰가 깜박이게 됩니다.
이 시나리오를 어떻게 최적화할 수 있나요?
怪我咯2017-06-15 09:25:52
self.tableView reloadRowsAtIndexPaths: withRowAnimation:
刷新会闪,考虑是否是 布局改变了,检测下layoutSubviews
을 사용하거나 뷰를 다시 생성하는 경우 이 뷰는 상대적으로 비용이 많이 들므로 FPS 및 캐시 셀 높이를 최적화하세요
某草草2017-06-15 09:25:52
는 새로 고침을 구현하는 것을 reloadRowsAtIndexPaths
이라고 하는 것입니다. 새로 고침 중에layoutSubviews가 호출되면 레이아웃이 변경되지 않습니다. 처음에 뷰 레이아웃을 설정하고 모델에 전달된 컨트롤 값을 새로 고칩니다.
비동기 렌더링 최적화가 완료되었으며, 각 셀의 높이가 고정되었습니다.