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

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

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

最佳答案

找到一个解决方案:委托(delegate)您的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)是为了在从服务器获取信息时不会滞后接口(interface)。
如果然后在用户界面中更新某些内容,请使用dispatch_async(dispatch_get_main_queue(), ^{//update UI code});

关于ios - 将UIRefreshControl所需的路径更改为UIControlEventValueChanged,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15360143/

10-09 02:34