Tôi có chế độ xem bảng với tiềm năng cho từng ô có chiều cao riêng, do đó không phù hợp để sử dụng rowHeight
. Thay vào đó, ngay bây giờ tôi đang sử dụng let indexSet = NSIndexSet(index: 10)
và self.tableView.estimatedRowHeight = 75
. Điều này có nghĩa là nó gọi hàm sizeThatFits
trên ô, để xác định chiều cao của nó. Tất cả đều hoạt động tốt.UITableView với chiều cao di động động nhảy khi cuộn lên sau khi tải lại ô
Vấn đề là khi bạn tải lại một ô trên màn hình. Cuộn xuống để hiển thị ô 10, ví dụ, sau đó tải lại ô 10, hoạt động tốt. Nhưng khi bạn bắt đầu cuộn lùi lại, qua các ô bạn đã thấy, nó sẽ chuyển về ước tínhRowHeight cho mỗi ô, hoàn toàn bỏ qua sizeThatFits
và do đó nhảy xung quanh khi bạn cuộn. Tôi không thể đưa ra một ước lượng chính xác hoặc 'đủ tốt' để có thể nhận thấy sự nhảy vọt này, vì các tế bào của tôi sẽ có thể hiển thị một dòng văn bản hoặc một hình ảnh đầy đủ - một sự khác biệt lớn trong kích thước.
tôi đã thể hiện hiệu ứng này ở đây:
tôi đã thực hiện nhiều nỗ lực khác nhau ở đây, sử dụng một hỗn hợp của heightForRowAtIndexPath, estimatedHeightForRowAtIndexPath .. vv .. Tôi đã thử phần khác nhau của lời khuyên về StackOverflow. Không có gì có vẻ hiệu quả.
Tôi đã kèm theo một dự án mẫu rất đơn giản, nơi bạn có thể thử nó cho chính mình:
https://www.dropbox.com/s/8f1rvkx9k23q6c1/tableviewtest.zip?dl=0
- Run dự án.
- Cuộn cho đến khi ô 10 đang ở chế độ xem.
- Đợi tối đa 5 giây để ô tải lại (nó trở thành màu tía).
- Cuộn lên.
Lưu ý đáng giá - điều này không không xảy ra nếu ô không ở chế độ xem khi được tải lại. Nếu nó ở trên hoặc bên dưới điểm cuộn hiện tại, mọi thứ hoạt động như mong đợi.
Đừng chỉ gửi một dự án và yêu cầu mọi người để tìm ra vấn đề của bạn. Cập nhật câu hỏi của bạn bằng mã có liên quan. – rmaddy
tôi gặp sự cố tương tự với 'UICollectionView'. cả hai đều giống nhau, do đó, một cách tiếp cận tương tự có thể giúp với điều này. đăng [câu trả lời ở đây] (https://stackoverflow.com/a/45361410/6744473) – shoe