7

を追加しようとしてUIRefreshControlUIScrollViewますが、問題はその領域が小さすぎるため、ユーザーが必要なレベルに引き上げることがほとんど不可能であるということです。

では、このコントロールの状態をトリガーしたり、必要なプルジェスチャの長さを変更したりする方法はありますか?

このコントロールは新しく、これを達成するための直接的な方法はないかもしれませんが、誰かがハックを見つけたのではないでしょうか。

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

ディスパッチは、サーバーから情報を取得している間、インターフェースに遅れをとらないようにするために行われます。その後、UIで何かを更新する場合は、dispatch_async(dispatch_get_main_queue(), ^{//update UI code});

于 2013-03-12T12:35:51.887 に答える