将UIRefreshControl所需的路径更改为UIControlEventValueChanged。

7

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

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

我知道,这个控件是新的,可能没有直接实现这个目标的方法,但也许有人找到了一个技巧?


类似概念:http://www.cocoacontrols.com/controls/pull-to-refresh-tableview - Mrunal
@mrunal 我只是想使用内置的解决方案来解决这个问题。 - Nikita Pestrov
请参考此链接:http://www.techrepublic.com/blog/ios-app-builder/ios-6-best-practices-introducing-the-uirefreshcontrol/314 - Mrunal
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});


@XhackerLiu 那个异步的。 - Nikita Pestrov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接