所以我有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上。
答案 0 :(得分:1)
您需要将contentInset的更改放在这样的动画块中......
[UIView animateWithDuration:0.2
delay:0.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
self.tableView.contentInset = UIEdgeInsetsMake(40, 0, 0, 0);
}
completion:nil];
(从内存中输入,因此您可能需要检查代码是否完成)。
这可以解决您的问题。