iphone UIview动画调整大小就像在水中消失并重新浮动

时间:2011-11-17 22:33:21

标签: iphone animation uiview fadein fadeout

我不想像uiview动画的最常见解决方案那样淡入淡出。我希望将uiview调整为小,直到它消失并以同样的方式返回。另一种说法就是让相机指向桌子,其中包含所有物体(UIView)和相机后备,并且备份越多,桌子越小。这就是为什么我标题主要是我的应用程序整个uiview沉入水中并浮起来。希望我能找到一个教程或某人对该解决方案的建议。一切都在屏幕的中间/中央调整大小/缩小。

UPDATE *** 我希望它在屏幕的随机位置收缩,并从屏幕的随机位置出现。 另外我的其他类的子视图是mainView中的viewdidload (View = [[View alloc] initWithFrame:CGRectMake(0,40,300,300)];)

2 个答案:

答案 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];