Làm cách nào để thêm UIRefreshControl vào cuối UIColloectionView? Điều đó có nghĩa là nó hoạt động như thế nào khi nói đến Scroll up (để xem dữ liệu cũ hoặc một cái gì đó)?UIRefreshControl cho "Pull Up" để làm mới?
Trả lời
Đây là danh mục CCBottomRefreshControl cho lớp UIScrollView (cấp độ gốc của lớp UICollectionView) triển khai thực hiện thuộc tính bottomRefreshControl. Nó tương thích với cả điều khiển làm mới gốc iOS 6 và 7.
Bạn không thể. Bạn thực sự không thể tùy chỉnh UIRefreshControl
.
Bạn không thể sử dụng UIRefreshControl
để thực hiện điều đó, nhưng nếu bạn đồng ý với giải pháp đơn giản hơn, bạn chỉ có thể thiết lập chế độ xem bộ sưu tập của mình để tự động tải thêm dữ liệu khi bạn cuộn xuống dưới cùng. (Ngẫu nhiên, đây là giao diện người dùng phổ biến hơn nhiều ... việc kéo lên để làm mới không phổ biến, nhưng tự động truy xuất nhiều dữ liệu hơn khi bạn chạm đáy.)
Biểu hiện nguyên thủy nhất là trả lời với phương pháp UIScrollViewDelegate
và xác định xem bạn đã cuộn xuống đáy của xem bộ sưu tập (đó là, bản thân, một lớp con của UIScrollView
):
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height)
{
if (!self.isLoadingMoreData)
{
self.loadingMoreData = YES;
// proceed with the loading of more data
}
}
}
Thậm chí tốt hơn, nếu bạn có nhiều dữ liệu để tải, chương trình một ô ở dưới cùng, có nội dung "vui lòng chờ, tải thêm dữ liệu", có lẽ với một UIActivityIndicatorView
. Ví dụ: nếu bạn có nhiều dữ liệu hơn để tải, hãy thêm một phần vào cuối bằng một ô này. Nếu bạn định dạng ô bổ sung này đúng cách (ví dụ: một ô đơn lẻ nằm ngang qua chế độ xem bộ sưu tập), nó chắc chắn có thể hiển thị hiệu ứng bạn đang tìm kiếm.
Bạn có mã mẫu để cung cấp cho người dùng thông báo này không? Tôi tải dữ liệu khi cuộn để kết thúc và mọi thứ hoạt động tốt. Bây giờ tôi chỉ cần thông báo khi dữ liệu đang tải. Không phải đơn giản để tải thêm một ô để thực hiện thông báo này. Cảm ơn! –
@ S.Birklin - Tôi nghĩ nó dễ hơn bạn nghi ngờ. Chỉ cần có 'numberOfRowsForSection' trả về một hàng bổ sung (giả sử bạn có thêm dữ liệu để tìm nạp). Sau đó, 'cellForRowAtIndexPath' chỉ có thể nhìn thấy nếu nó vượt ra ngoài phạm vi của dữ liệu hiện có và hiển thị ô" tải "nếu trường hợp đó xảy ra. Xem https://github.com/robertmryan/UITableView-Bottom-Refresh để minh họa đơn giản. – Rob
đây phải là câu trả lời được chấp nhận –