在transitionFromView期间缩放UIView?

时间:2011-04-12 06:14:20

标签: iphone uiview quartz-graphics

我正在使用容器UIView来复制iTunes商店在您点击专辑图片时所执行的行为,并且它会翻转和缩放。

目前的代码如下:

//mainView is 300x300x, smallView is 30x30      

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView transitionFromView:mainView toView:smallView duration:3.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:nil];

containerView.frame = CGRectMake(275, 415, 30, 30);

[UIView commitAnimations];  

我似乎无法在动画期间获取containerView的内容,框架只是关闭内容。我尝试将一些变换应用于视图和图层以及一些其他的东西,但我似乎无法让它表现得正常。

2 个答案:

答案 0 :(得分:0)

不是设置框架,而是尝试使用转换:

- (void)setStartTransform:(CGAffineTransform)transform;
- (void)setEndTransform:(CGAffineTransform)transform;

这样的东西
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView transitionFromView:mainView toView:smallView duration:3.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:nil];

//containerView.frame = CGRectMake(275, 415, 30, 30);

[containerView setStartTransform: CGAffineTransformIdentity];
[containerView setEndTransform: CGAffineTransformMakeScale(0.1, 0.1)];

[UIView commitAnimations];  

(您可能还需要将转换应用于转换。)

答案 1 :(得分:0)

以这种方式尝试:

[UIView transitionWithView:mainView
           duration:0.2
           options:UIViewAnimationOptionTransitionFlipFromLeft
           animations:^{ 
              containerView.frame = CGRectMake(275, 415, 30, 30)
            }
           completion:NULL];