我正在为包含 11 个子视图(7 个按钮、2 个标签、2 个图像视图)的 uiview(名为“popupVw”的父视图)制作动画。最初的帧大小是:
CGRect Frame = CGRectMake(10, 10 ,320, 0);
& 新的框架尺寸是:
CGRect newFrame = CGRectMake(10, 10 ,320, 300);
[UIView animateWithDuration:0.5
animations:^{popupVw.frame = newFrame;}
completion:^(BOOL finished){
// do stuff here after animation finished
}];
所以基本上我正在将视图高度从 0 更改为 300 。& 然后再次从 300 变为 0。实现显示隐藏动画。
将其视为屏幕中间从 0 到 300 height 出现的弹出窗口。此弹出窗口包含子视图和右上角的关闭按钮。通过单击此关闭按钮,弹出窗口再次从 300 降低到 0 的高度。父弹出视图正在正确设置动画。但是在高度增加到最大值之前,子视图是可见的。& 可见,直到父视图的高度再次变为 0。所以基本上只有父视图是动画而不是内部视图。
动画在父视图上正常工作,但子视图没有与父视图一起动画。结果,当我将 uiview 的高度从 300 更改为 0 时,所有子视图仍然可见并且只有父 uiview 的高度变为 0。
我需要为他们单独放动画吗?如果是,那么我该怎么做才能改变高度?或者有没有其他方法可以用来达到相同的结果?
我试过自动调整面具。但它不适合我:
pointerImgVw.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin ;
以下是问题的根源:
右上角的十字按钮是动画弹出的子视图。我想要的是十字按钮不应该在动画视图之外。例如,在第二个屏幕截图中,只有半十字按钮应该是可见的。外部部分不应该是可见的