7

我正在尝试将其添加UIRefreshControl到我的UIScrollView中,但问题是它的面积太小,因此用户几乎不可能拉到所需的水平。

那么有没有办法触发这个控件的状态或者改变所需拉动手势的长度呢?

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

4

1 回答 1

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

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

于 2013-03-12T12:35:51.887 回答