UIView动画不会为子视图设置动画

时间:2013-11-12 12:08:36

标签: ios objective-c animation layout uiview

我有一个带有一些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];
                 }];

据我所知(就我的研究而言),这就是应该怎么做......但显然我错了,我不能为我的生活找出我需要做的事情。 。在动画结束时,一切都定位得很好,但是子视图只是拒绝动画。非常感谢任何帮助!

为了完整起见,我可能值得一提的是,我从故事板中加载了我在滚动视图中定位的视图,我还为其子视图设置了约束。我认为这应该不是问题,因为布局实际上有效......除了动画。

0 个答案:

没有答案