在我的应用中,我有一个表格视图。当用户点击按钮时,UIView覆盖了部分表格视图。它本质上是一个部分模态。在该模态处于活动状态时,故意使该表格视图仍然可滚动。为了允许用户滚动到表格视图的底部,我更改了contentInset和scrollIndicatorInsets值以调整模态框上面较小的区域。当模态框被取消时,我重置这些插入值。
问题是,当用户已经滚动到新调整的插入最底部,然后解除模态框时,由于插入立即更改,表格视图会突然跳转到新的滚动位置。我想将其动画化,以便进行过渡,���是beginAnimation/commitAnimations方法出于某种原因并未影响它。
编辑:更多信息。我发现冲突。当呈现模态框时,我还隐藏了导航栏。导航栏本地动画显示和隐藏时会向上和向下移动表格视图。当我停止动画导航栏时,插入动画就正常工作了。有人知道我可以做什么来解决这个冲突吗?我需要等待导航栏动画完成才能调整插入吗?如果是这样,我该如何连接它?
非常感谢任何帮助!
来自表格视图控制器的相关代码在此处:
问题是,当用户已经滚动到新调整的插入最底部,然后解除模态框时,由于插入立即更改,表格视图会突然跳转到新的滚动位置。我想将其动画化,以便进行过渡,���是beginAnimation/commitAnimations方法出于某种原因并未影响它。
编辑:更多信息。我发现冲突。当呈现模态框时,我还隐藏了导航栏。导航栏本地动画显示和隐藏时会向上和向下移动表格视图。当我停止动画导航栏时,插入动画就正常工作了。有人知道我可以做什么来解决这个冲突吗?我需要等待导航栏动画完成才能调整插入吗?如果是这样,我该如何连接它?
非常感谢任何帮助!
来自表格视图控制器的相关代码在此处:
- (void)viewDidLoad {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(modalOpened) name:@"ModalStartedOpening" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(modalDismissed) name:@"ModalStartedClosing" object:nil];
[super viewDidLoad];
}
- (void)modalOpened {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelegate:self];
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 201, 0);
self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 201, 0);
[UIView commitAnimations];
}
- (void)modalDismissed {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelegate:self];
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 0, 0);
[UIView commitAnimations];
}