2013-03-12 40 views
7

Tôi đang cố gắng thêm UIRefreshControl vào số UIScrollView của mình, nhưng vấn đề là khu vực của nó quá nhỏ nên hầu như không thể người dùng kéo đến mức yêu cầu.Thay đổi đường dẫn cần thiết cho UIRefreshControl để chuyển đến UICefroleshal

Vì vậy, có cách nào để kích hoạt trạng thái của điều khiển này hoặc thay đổi độ dài của cử chỉ kéo yêu cầu không?

Tôi biết, điều khiển này là mới và có thể không có cách nào để đạt được điều này một cách thẳng thắn, nhưng có thể ai đó đã tìm thấy một bản hack?

+0

Khái niệm tương tự: http://www.cocoacontrols.com/controls/pull-to-refresh-tableview – Mrunal

+0

@mrunal tôi chỉ muốn chúng tôi cung cấp giải pháp tích hợp cho rằng –

+0

Sau đó, hãy tham khảo: http://www.techrepublic.com/blog/ios-app-builder/ios-6-best-practices-introducing-the-uirefreshcontrol/314 – Mrunal

Trả lời

7

Tìm thấy một giải pháp: làm cho một đại biểu của scrollview của bạn và trong - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate làm mới kiểm soát tại một số bù đắp

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate 
{ 
    if (scrollView.contentOffset.y < -70) { 
    [refreshControl beginRefreshing]; 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ 
     [self handleRefresh:refreshControl]; 
    }); 
    } 
} 

văn được thực hiện cho không tụt giao diện trong khi nhận được thông tin từ máy chủ. Nếu sau đó bạn cập nhật nội dung nào đó trong giao diện người dùng của mình, hãy sử dụng dispatch_async(dispatch_get_main_queue(), ^{//update UI code});

+0

Xin chào, tôi tự hỏi tại sao sử dụng dispatch_sync ở đây ? –

+0

@XhackerLiu không đồng bộ hóa –