调用beginRefreshing并且contentOffset为0时,UIRefreshControl没有显示多刺

Pet*_*isu 11 uitableview ios6 uirefreshcontrol

调用时我无法看到加载微调器 beginRefreshing

[self.refreshControl beginRefreshing];
Run Code Online (Sandbox Code Playgroud)

我的UITableViewController子类使用UIRefreshControl

// refresh
    UIRefreshControl * refreshControl = [UIRefreshControl new];
    [refreshControl addTarget:self action:@selector(refreshTableView) forControlEvents:UIControlEventValueChanged];
    self.refreshControl = refreshControl;
Run Code Online (Sandbox Code Playgroud)

它与用户交互完美配合(当用户将表放下时),然后可以看到微调器.

但是当我调用beginRefreshingviewDidLoad时,我没有看到微调器(只有当我向下拖动表时).

笔记:

  • self.refreshControl引用是对的

  • 在beginRefreshing之后不会立即调用reloadData或endRefreshing,但是有很长的时间延迟(通过网络加载数据),所以我没有取消beginRefreshing.

编辑: 这只发生在0和i调用的contentOffset属性时.错误?Feauture?tableView[self.refreshControl beginRefreshing]

Pet*_*isu 29

它看起来像我的错误,因为它只occures时contentOffset的财产tableView0

我用以下代码修复了它(UITableViewController的方法):

- (void)beginRefreshingTableView {

    [self.refreshControl beginRefreshing];

    if (self.tableView.contentOffset.y == 0) {

        [UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^(void){

            self.tableView.contentOffset = CGPointMake(0, -self.refreshControl.frame.size.height);

        } completion:^(BOOL finished){

        }];

    }
}
Run Code Online (Sandbox Code Playgroud)