使用基于块的方法的动画缩放动画

时间:2011-04-18 21:00:49

标签: ipad ios4 core-animation zoom

我有一个缩放动画,当我执行动作时,视图以缩放方式出现。

我用来做这个的代码是,

            CGFloat xpos = self.view.frame.origin.x;
    CGFloat ypos = self.view.frame.origin.y;
    popContents.view.frame = CGRectMake(xpos+100,ypos+150,5,5);
    [UIView beginAnimations:@"Zoom" context:NULL];
    [UIView setAnimationDuration:0.8];
    popContents.view.frame = CGRectMake(320, ypos-70, 350, 350);
    [UIView commitAnimations];
    [self.view.superview addSubview:popContents.view];

我刚刚意识到在ios4.0中不推荐以这种方式使用,建议使用基于块的方法制作动画。

我尝试寻找任何一种示例,它会给我一个提示,使用基于块的方法获得我需要的缩放效果,但我找不到任何...

如果有人能帮我解决这个问题会很棒......

1 个答案:

答案 0 :(得分:1)

我想通了......

显然“缩放”只是一个名字,并没有做任何事情(就我实验而言)

以下是使用基于块的方法的animate实现效果的方法......

[UIView animateWithDuration:0.8 animations:^ { popContents.view.frame = CGRectMake(160, 70, 350, 350);
        [self.view.superview bringSubviewToFront:self.view];
        [self.view.superview addSubview:popContents.view]; }
                     completion: ^(BOOL finished) {
                         NSLog(@"DONE");
                     }
     ];

现在只有一个问题,我无法弄明白......

这是编辑过的代码 -

[UIView transitionWithView:self.view duration:1 
                        options:UIViewAnimationOptionTransitionFlipFromLeft 
                     animations:^
                                { 
                                    popContents.view.frame = CGRectMake(160, 70, 350, 350);
                                    [self.view.superview bringSubviewToFront:self.view];
                                    [self.view.superview addSubview:popContents.view];
                                }
                     completion: ^(BOOL finished) 
                                {
                                    NSLog(@"DONE");
                                }];

所以这里发生的是,当popContents视图缩放到位置时,表视图会旋转。我明白这是因为我给了transitionWithView:self.view

会发生什么

但是,我怎样才能将此效果添加到popContents视图(缩放到位置的视图)......是否可能?

我尝试了transitionWithView:popContents.view,但这似乎对缩放动画没有任何额外的影响。

有人能告诉我我做错了吗?