7

所以我有 UITableViewController 的标准子类和表格视图。现在我已将内容插图设置为

self.tableView.contentInset = UIEdgeInsetsMake(40, 0, 0, 0);

我也以标准方式使用 UIRefreshControl。

self.refreshControl = [[CTRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(loadData:) forControlEvents:UIControlEventValueChanged];

如果表格视图包含足够的滚动数据(因此内容大小高度大于表格视图的高度),则一切正常且顺利。当表中没有足够的数据(例如只有 2 行)时,当我开始下拉时,它会顺利进行,然后突然向下跳大约 20 个点。当我滚动其他方向时也会发生同样的事情。当没有刷新控制或我不更改 contentInset 时,它不会发生。有任何想法吗?全部在 iOS 6 上。

4

1 回答 1

1

您需要将 contentInset 的更改放在这样的动画块中......

[UIView animateWithDuration:0.2
                      delay:0.0
                    options:UIViewAnimationOptionCurveEaseInOut
                 animations:^{
                     self.tableView.contentInset = UIEdgeInsetsMake(40, 0, 0, 0);
                 }
                 completion:nil];

(从内存中输入,因此您可能需要检查代码完成情况)。

这应该可以解决您的问题。

于 2013-08-07T16:21:51.253 回答