Trình nghe thời gian dài, người gọi lần đầu tiên ở đây trên tràn ngăn xếp. Hãy nhẹ nhàng.UIRefreshControl - Làm cách nào để thực hiện hành động làm mới sau khi chạm được phát hành?
Tôi đang triển khai UIRefreshControl trên UITableView để làm mới dữ liệu của bảng. Trên các triển khai pull-to-refresh khác, quá trình làm mới không bắt đầu cho đến khi ngón tay của người dùng được nhấc lên trong khoảng cách làm mới của kéo. UIRefreshControl không ngay lập tức có vẻ như nó có tùy biến này.
UIRefreshControl My mã init:
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];
refresh của tôi: Mã là khá cơ bản:
-(void)refresh:(id)sender {
(... refresh code ...)
[sender endRefreshing];
}
Làm thế nào tôi có thể trì hoãn việc làm mới: chức năng đến khi người dùng loại bỏ ngón tay của họ từ kéo?
Giải pháp này hoạt động nếu người dùng từ từ kéo và kéo. Nếu nó gần giống như một bộ phim, bánh xe tải sẽ chạy nhưng chức năng refresh: sẽ không được gọi cho đến khi bảng được di chuyển lần nữa. chỉnh sửa: Tôi đã thay đổi hàm thành scrollViewDidEndDecelerating: và nó có vẻ hoạt động tốt ngay bây giờ. Cảm ơn! – outphase
Có, bạn hoàn toàn đúng! Bây giờ nó hoạt động tốt hơn nhiều, nhờ chỉnh sửa mã của tôi!) – Ned
Có một vấn đề nhỏ với điều này. Nếu bạn kéo bàn xem xuống đủ để làm mới, hãy giữ ngón tay của bạn xuống, quay trở lại nơi spinner là khoảng một nửa có thể nhìn thấy, sau đó cho đi ... nó sẽ hiển thị quay quay và không có gì sẽ xảy ra. –