我不想像uiview动画的最常见解决方案那样淡入淡出。我希望将uiview调整为小,直到它消失并以同样的方式返回。另一种说法就是让相机指向桌子,其中包含所有物体(UIView)和相机后备,并且备份越多,桌子越小。这就是为什么我标题主要是我的应用程序整个uiview沉入水中并浮起来。希望我能找到一个教程或某人对该解决方案的建议。一切都在屏幕的中间/中央调整大小/缩小。
UPDATE *** 我希望它在屏幕的随机位置收缩,并从屏幕的随机位置出现。 另外我的其他类的子视图是mainView中的viewdidload (View = [[View alloc] initWithFrame:CGRectMake(0,40,300,300)];)
答案 0 :(得分:2)
试试这个,view
是你正在搞砸的观点:
CGRect originalFrame = view.frame;
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationCurveEaseInOut animations:^{
CGRect frame = view.frame;
frame.origin = view.center;
frame.size = CGSizeMake( 0, 0 );
view.frame = frame;
} completion:^(BOOL finished) {
// Do something with the view
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationCurveEaseInOut animations:^{
view.frame = originalFrame;
} completion:^(BOOL finished) {
return;
}];
return;
}];
答案 1 :(得分:0)
你可以通过将画面缩小到屏幕上某个点的中心大小(0,0)来获得这种效果
// assume float cx,cy are defined as center coordinates of your animation (ie where your image shrinks and grows from)
// assume CGRect animFrame is defined as the starting coordinates of your animationView
// assume you have outlet to animationView
// to shrink
[UIView beginAnimations:@"WaterAnim" context:nil];
[UIView setAnimationDuration:0.33];
animationView.frame = CGRectMake(cx,cy, 0,0);
[UIView commitAnimations];
// to grow
[UIView beginAnimations:@"WaterAnim" context:nil];
[UIView setAnimationDuration:0.33];
animationView.frame = animationFrame;
[UIView commitAnimations];