我想复制 iOS 7 主屏幕动画。大多数情况下,我有兴趣将滚动视图放大到特定点(如果图标在那里,则为左上角、中间或右上角等)
http://www.youtube.com/watch?v=qBL8eQmQaVU
我以为我可以使用 CGAffineTransformMakeScale 但我想不出一种方法将其缩放到特定点。有任何想法吗?
我想复制 iOS 7 主屏幕动画。大多数情况下,我有兴趣将滚动视图放大到特定点(如果图标在那里,则为左上角、中间或右上角等)
http://www.youtube.com/watch?v=qBL8eQmQaVU
我以为我可以使用 CGAffineTransformMakeScale 但我想不出一种方法将其缩放到特定点。有任何想法吗?
你可以只使用动画块吗?在动画期间,您可以通过 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];
您可以使用复制 iOS 主屏幕大部分功能的源代码。