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 に答える