更改UIRefreshControl转到UIControlEventValueChanged所需的路径

时间:2013-03-12 11:39:05

标签: ios uiview ios6 uiscrollview uirefreshcontrol

我正在尝试将UIRefreshControl添加到我的UIScrollView,但问题是它的区域太小,因此用户几乎不可能达到所需级别。

那么有没有办法触发此控件的状态或更改所需拉动手势的长度?

我知道,这种控制是新的,可能没有直接的方法来实现这一点,但也许有人找到了黑客?

1 个答案:

答案 0 :(得分:7)

找到一个解决方案:创建一个scrollView的委托,并在- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate刷新控件的某个偏移量

- (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];
     });
  }
}

调度是为了在从服务器获取信息时不会滞后接口。 如果您随后在UI中更新了某些内容,请使用dispatch_async(dispatch_get_main_queue(), ^{//update UI code});