我正在尝试为 tableview 的偏移设置动画,然后在完成块中将其向上移动。但是我的代码在完成块中没有做任何事情:
-(void)viewDidAppear:(BOOL)animated {
if (TRUE) {
NSLog(@"animating table view");
[UIView animateWithDuration:.25
animations:^{
self.tableView.contentOffset = CGPointMake(self.tableView.contentOffset.x, self.tableView.contentOffset.y - 60);
}
completion:^(BOOL finished){
NSLog(@"completion block");
}];
}
}
“完成块”永远不会被输出......有什么想法吗?
编辑:
好的,所以它与我的 UIRefreshControl 有关:
- (void)viewDidLoad
{
[super viewDidLoad];
if (TRUE) {
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refresh addTarget:self action:@selector(refreshTableView:) forControlEvents:UIControlEventValueChanged];
[self setRefreshControl:refresh];
}
}
添加刷新控件后,它不会触发完成块。如果我不添加控件,它会按预期工作。
编辑2:
K,所以如果我滚动表格视图,则会触发完成块:
2013-02-15 13:37:06.266 [1922:14003] animating table view
2013-02-15 13:37:14.782 [1922:14003] completion block
编写的代码应该在“动画表视图”之后立即记录“完成块”,但它有 8 秒的延迟,因为那是我自己滚动表视图时。
“拉动刷新”的样子: