iOS7中的NSLayoutConstraint动画持续时间
Posted
技术标签:
【中文标题】iOS7中的NSLayoutConstraint动画持续时间【英文标题】:NSLayoutConstraint animation duration in iOS7 【发布时间】:2014-01-31 13:16:57 【问题描述】:我不知道如何在 ios7 中设置 NSLayoutConstraint 动画持续时间。这是我的代码:
self.loadingViewTop.constant = -[[UIScreen mainScreen] bounds].size.height;
self.loadingViewBottom.constant = [[UIScreen mainScreen] bounds].size.height;
[UIView animateWithDuration:30.0f animations:^
[self.loadingView setNeedsUpdateConstraints];
];
【问题讨论】:
Are NSLayoutConstraints animatable?的可能重复 @iiFreeman 我试过了。实际上,如果您删除 [UIView animateWithDuration] 代码,视图仍然会设置动画。我看不到任何可能的解决方案如何控制它。 【参考方案1】:哦,你忘了在动画块中调用[self.view layoutIfNeeded];
【讨论】:
我也试过了。它没有任何区别。我认为布局约束在 iOS7 中表现不同。在 iOS6 中运行良好的代码不再运行。 你检查过你的常量实际上不是 nil 吗? 好的,我搞定了。这是正确的做法: self.loadingViewTop.constant = -[[UIScreen mainScreen] bounds].size.height; self.loadingViewBottom.constant = [[UIScreen mainScreen] bounds].size.height; [UIView animateWithDuration:30.0f 动画:^ [self.view layoutIfNeeded]; ];【参考方案2】:解决办法:
self.loadingViewTop.constant = -[[UIScreen mainScreen] bounds].size.height;
self.loadingViewBottom.constant = [[UIScreen mainScreen] bounds].size.height;
[UIView animateWithDuration:30.0f animations:^
[self.view layoutIfNeeded];
];
【讨论】:
以上是关于iOS7中的NSLayoutConstraint动画持续时间的主要内容,如果未能解决你的问题,请参考以下文章
NSLayoutConstraint layout Margin 从 iOS 7 到 iOS 8 的变化
如何修改NSLayoutConstraint的multiplier