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 ホーム画面のほとんどの機能を複製するこのソース コードを使用できます。