2012-10-03 13 views
14

Tôi đã có một UIRefreshControl ở trên cùng của bảng của tôi.UIRefreshControl in Landscape

Màn hình ở chế độ ngang.

Sự cố là, tôi không thể kéo xuống đủ xa để kích hoạt làm mới, bởi vì có quá ít khoảng trống trong Cảnh. Có cách nào để điều chỉnh số tiền bạn phải rút xuống không?

+0

Rất quan tâm đến việc khám phá ra nguyên nhân gốc rễ của vấn đề này. Không thể tạo lại trong Xcode 4.5 trên OS X 10.8.2 – Zelko

+4

ứng dụng của tôi có thanh điều hướng, cũng như thanh UISearchBar ở đầu bảng, do đó có ít chỗ để kéo – cannyboy

+0

Nếu bạn chỉ có thanh điều hướng và tìm kiếm thanh sau đó đủ công bằng, âm thanh như thế này sẽ làm việc như mong đợi. Ứng dụng Thư có thanh tìm kiếm và thanh điều hướng, hoạt động tốt ở đó, bạn còn có gì khác trong màn hình của mình? – Daniel

Trả lời

10

Cách bạn có thể điều chỉnh khoảng cách bạn phải kéo bằng cách thay đổi chiều cao của UITableView. UIRefreshControl điều chỉnh chiều cao méo tối đa tương ứng với chiều cao của tableView. Nếu bạn không thể thay đổi chiều cao của tableView, vui lòng file a bug với các chi tiết về tình huống của bạn và hy vọng sẽ được giải quyết trong bản phát hành iOS trong tương lai.

Ngoài ra, bạn đã thử kéo xuống nhanh hơn chưa?

+3

Điều chỉnh chiều cao của một bảng nhìn dường như không có tác dụng gì cả. – cannyboy

+0

@cannyboy rất thú vị. Vui lòng gửi lỗi kèm theo chi tiết. Cảm ơn! :) –

+0

yep chiều cao tableview không thay đổi "chiều cao méo tối đa tương ứng với chiều cao của tableView", tôi đã đệ trình lỗi – ugiflezet

10

Hãy nhớ rằng chế độ xem bảng của bạn chỉ là lớp con của UIScrollView. Trong bộ điều khiển của bạn, hãy thực hiện phương thức scrollViewDidScroll và gọi -beginRefreshing trên UIRefreshControl của bạn như dưới đây.

Nhưng hoạt ảnh của UIRefreshControl trong khi chuyển sang trạng thái làm mới sẽ không mượt mà như bạn mong đợi. Nhưng nó đã có tác dụng.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if (scrollView.contentOffset.y < -98 && ![self.refresher isRefreshing]) { 
     [self.refresher beginRefreshing]; 
     //do all the work 
     [self.refresher endRefreshing]; 
    } 
} 
+0

Giải pháp thay thế tốt ngay bây giờ. –

+2

Hãy nhớ rằng bạn nên đặt nó bên trong ScrollViewDidEndDragging: –

0

nếu contentsize của bạn có chiều cao là không đủ để kéo xuống, bạn có thể cần phải bật thẳng đứng của nó bằng cách sử dụng self.collectionView.alwaysBounceVertical = YES;