如何停止重新加载数据移动表视图



我有一个表格视图,按下按钮时会将其动画化为新位置。它覆盖底部屏幕的一小部分,然后按下按钮调用一个使其覆盖大约一半屏幕的方法。这样,用户可以从表视图中选择文件。

但是,似乎当我调用 reloadData 时,表视图会移回其原始位置,我想阻止这种情况发生,以便用户不需要每次都按下按钮(例如删除文件、重命名文件或向表视图添加新文件)。

任何想法我如何做到这一点?

我已经包含了代码。文件 IBAction 是按下按钮时发生的情况。

-(IBAction)file:(id)sender {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
if (self.tableView.frame.origin.y == 457) {
    [self tableAppear];
}
else {
   [self tableDisappear];
}
}
-(void)tableDisappear {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
if ([[UIScreen mainScreen] bounds].size.height == 568) { [self.tableView setCenter:CGPointMake(160, 545)];
}
else { [self.tableView setCenter:CGPointMake(160, 545)];
}
[UIView commitAnimations];
}
-(void)tableAppear {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
    if ([[UIScreen mainScreen] bounds].size.height == 568) { [self.tableView setCenter:CGPointMake(160, 390)];
    }
    else { [self.tableView setCenter:CGPointMake(160, 390)];

    }
    [UIView commitAnimations];
}

这很可能是自动布局的结果(当需要重绘屏幕时,所有视图都将恢复到由其约束确定的位置,而不是您设置的任何框架)。您可以关闭自动布局以查看这是否是问题所在。如果要使用自动布局,则需要使用约束而不是设置视图来移动视图或调整视图大小。

最新更新