2

我想复制 iOS 7 主屏幕动画。大多数情况下,我有兴趣将滚动视图放大到特定点(如果图标在那里,则为左上角、中间或右上角等)

http://www.youtube.com/watch?v=qBL8eQmQaVU

我以为我可以使用 CGAffineTransformMakeScale 但我想不出一种方法将其缩放到特定点。有任何想法吗?

4

2 回答 2

2

你可以只使用动画块吗?在动画期间,您可以通过 Scrollview 的内容渲染 UIImage

UIGraphicsBeginImageContext(scrollView.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[scrollView.layer renderInContext:context];
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

您可以将此图像作为图像视图(将图像视图的内容模式设置为调整大小以适应)覆盖现有内容并使图像视图始终与滚动视图的大小相同。使它看起来像整个滚动视图正在调整大小。

这是动画块代码。

缩小

    scrollView.frame = icon.frame


    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationDelay:1.0];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

    scrollview.frame = window.frame;

    [UIView commitAnimations];

放大

scrollView.frame = window.frame


    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationDelay:1.0];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

    scrollview.frame = icon.frame;

    [UIView commitAnimations];
于 2013-10-13T12:55:24.060 回答
0

您可以使用复制 iOS 主屏幕大部分功能的源代码

于 2015-05-20T12:44:03.097 回答