2016-10-23 87 views
0

我想補充更新的姿態在一些觀點在我的iOS應用
通常這個手勢是滾動上部和持有一段小時間如何在iOS中結束拖動事件之前檢測滾動更新?

我可以做只是手勢處理機的作品,如果用戶沒有抱滾動視圖不止1秒:當頂部

上述用戶滾動視圖如何檢測這種滾動

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { 
    if (scrollView == _tableView) { 
     _scrollViewDragStarted = [NSDate date]; 
    } 
} 

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset { 
    if (scrollView == _tableView) { 
     if (velocity.y < 0 && targetContentOffset->y < 0) { 
      NSTimeInterval hold = [[NSDate date] timeIntervalSinceDate:_scrollViewDragStarted]; 
      if (hold > 1) { 
       // refreshing method calls here 
      } 
     } 
     _scrollViewDragStarted = nil; 
    } 
} 

它完美,但暗示持有大約需要? scrollViewWillBeginDragging:事件沒有滾動參數爲scrollViewWillEndDragging:withVelocity:targetContentOffset:

或者也許存在另一種方式來實現呢?

回答

0

1) 您可以使用refreshcontrol並以您想要的方式對其進行自定義。將推薦使用這個作爲它的核心api並且給你有趣的動畫。加上這是通用的並且在任何地方都可以使用,因此用戶已經知道如何使用比較來滾動並保持一秒鐘的手勢。

- (無效)viewDidLoad中{
...
UIRefreshControl * refreshControl = [[UIRefreshControl的alloc] INIT];
[refreshControl addTarget:self action:@selector(handleRefresh :) forControlEvents:UIControlEventValueChanged];
[self.myTableView addSubview:refreshControl];
...
}

- (空)handleRefresh:(ID)發送{// 做你的刷新在這裏...}