我正在使用自动布局,我正在尝试在屏幕上和屏幕外滑动视图。我尝试了几种方法,一些来自stackoverflow,一些来自Apple文档,但没有任何效果。视图只是在屏幕上弹出,无论我在动画时使用的持续时间是什么。
如下所示,我已经尝试过几种方法。什么都行不通。隐藏和显示它们只是在屏幕上弹出(即不动画)。
-(void)hideButtons {
[self.view layoutIfNeeded]; // Ensures that all pending layout operations have been completed
[UIView animateWithDuration:1.5f animations:^{
self.leftSideConstraint.constant = 300;
[self.view layoutIfNeeded];
}];
}
-(void)showButtons {
//[self.view layoutIfNeeded]; // Ensures that all pending layout operations have been completed
self.leftSideConstraint.constant = 87;
[self.view setNeedsUpdateConstraints];
[UIView animateWithDuration:1.5f animations:^{
[self.view layoutIfNeeded];
}];
}
答案 0 :(得分:0)
您确定self.leftSideConstraint
已添加到self.view
而不是其超级视图或其他视图吗?如果是后者,那么我相信这是你的问题。我认为您需要在具有该约束的视图上setNeedsUpdateConstraints
和layoutIfNeeded
。
编辑:实际上,您可以在setNeedsUpdateConstraints
上致电self.view
,因为它会在视图层次结构中传播,但我相信您需要在超级视图上layoutIfNeeded
。