我有一个带有一些UIViews的UIScrollView,它还包含各种其他视图(标签,文本字段等)。现在,当我旋转设备时,我想改变滚动视图中视图的大小和位置。为此,我预先计算了纵向和横向模式的一组约束,并根据当前界面方向在滚动视图上切换约束。基本上,这可以按预期工作。问题在于,我不希望简单地提出观点,而是将其平滑地放到新的位置。这就是我现在完全陷入困境的地方。基本动画工作得很好,即滚动视图中的视图是完美的动画,但这些视图中的子视图只是重新定位而不是动画。我使用以下代码启动动画
NSMutableArray *constraints = UIInterfaceOrientationIsLandscape(interfaceOrientation) ? self.landscapeConstraints : self.portraitConstraints;
[self.scrollView removeConstraints:self.scrollView.constraints];
[self.scrollView addConstraints:constraints];
[UIView animateWithDuration:duration
animations:^{
[self.scrollView layoutIfNeeded];
}];
据我所知(就我的研究而言),这就是应该怎么做......但显然我错了,我不能为我的生活找出我需要做的事情。 。在动画结束时,一切都定位得很好,但是子视图只是拒绝动画。非常感谢任何帮助!
为了完整起见,我可能值得一提的是,我从故事板中加载了我在滚动视图中定位的视图,我还为其子视图设置了约束。我认为这应该不是问题,因为布局实际上有效......除了动画。