繁体   English   中英

iOS7视图过渡效果放大

[英]iOS7 view transition effect zoomed in

嗨,也许这是一个重复的问题,我只是不知道该问题的关键词,如果是这种情况,请指出。

我当前正在实现两个视图之间的过渡,如第二个视图所示,它应该看起来像是从外面放大到屏幕上,有点像落在屏幕上。 我的想法是将第二个视图缩放9 *原始大小,并将原点设置为-original_width,-original_height,并将alpha设置为0。最后,我将alpha设置为1并显示原始大小。

因此以下代码不起作用,子视图不会调整大小。 谁能告诉我我在这里想念的东西,或者更好地向我展示一些执行该任务的API?

[toVC.view setFrame:CGRectMake(0-fromVC.view.frame.size.width, 0-screenRect.size.height, fromVC.view.frame.size.width*3, fromVC.view.frame.size.height*3)];
    for (UIView* view in toVC.view.subviews) {
        CGRect frame = view.frame;
        [view setFrame:CGRectMake(frame.origin.x*3, frame.origin.y*3, frame.size.width*3, frame.size.height*3)];
    }
    [toVC.view layoutIfNeeded];
    [toVC.view setAlpha:0.1];
    [UIView animateWithDuration:duration*5
                     animations:^{
                         [toVC.view setAlpha:1.0];
                         [toVC.view setFrame:CGRectMake(0, 0, fromVC.view.frame.size.width, fromVC.view.frame.size.height)];
                         for (UIView* view in toVC.view.subviews) {
                             CGRect frame = view.frame;
                             [view setFrame:CGRectMake(frame.origin.x/3, frame.origin.y/3, frame.size.width/3, frame.size.height/3)];
                         }
                     }
                     completion:^(BOOL finished) {
                         [transitionContext completeTransition:YES];
                     }];

您可以只在转换之前和之后设置视图转换:

CGAffineTransform scaleTransform = CGAffineTransformIdentity;
scaleTransform = CGAffineTransformScale(rotationTransform, 9., 9.);
view.transform = scaleTransform;
view.alpha = 0;
[UIView animateWithDuration:duration*5
                     animations:^{
                         view.transform = CGAffineTransformIdentity;
                         view.alpha = 1.;
                         }
                     }
                     completion:^(BOOL finished) {
                     }];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM