iOS动画包含子视图的视图

top*_*ess 5 xcode animation uiview ios

我正在尝试制作动画来折叠包含一些子视图的视图.

[UIView beginAnimations:@"advancedAnimations" context:nil];
[UIView setAnimationDuration:3.0];

CGRect aFrame = aView.frame;
aView.size.height = 0;
aView.frame = aFrame;

[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)

这个动画很好,但仅适用于aView.子视图不会按预期崩溃.如何使子视图也崩溃?此外,还有一种方法可以在折叠后重新计算原始大小吗?

谢谢

Zol*_*eas 5

您可能忘记将一些自动调整遮罩应用于子视图.如果你这样做

for (UIView *subview in aView.subviews) {
    subview.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin);
}
Run Code Online (Sandbox Code Playgroud)

它应该工作.

但是,正如拉梅拉斯所说,我会亲自使用

aView.transform = CGAffineTransformMakeScale(1.0,0.0);
Run Code Online (Sandbox Code Playgroud)