0

iOS アプリケーションが状態をフォアグラウンドからバックグラウンドに変更すると、OS は現在のビュー (画面) のスナップショットを取得し、再びフォアグラウンドになると、そのスナップショットを表示します。アプリケーションがバックグラウンドからフォアグラウンドになったときに、そのスナップショットを傍受してカスタム イメージを表示する方法 (アニメーションなど) はありますか?

注:ビューのスナップショットを撮りたくありません。アプリケーションがバックグラウンドからフォアグラウンドに入ったときにカスタム画像を表示して、より明確にするために、バックグラウンドからフォアグラウンドに移行するときにOSが表示するスナップショットが何であれ、そのスナップショットをカスタム イメージに置き換えるには、「バックグラウンドからフォアグラウンドへの遷移が発生するたびに、アプリケーションはバックグラウンドに入ったビューに関係なく、毎回カスタム イメージを表示する」という動作が必要です。助けてくれてありがとう。

4

2 に答える 2

2

通知に登録して、そのUIApplicationDidEnterBackgroundNotification時に提示したい画像を表示できます。

于 2013-03-14T14:42:54.907 に答える
1

AppDelegate 自体で使用できるデリゲート メソッドは 2 つあります。

 - applicationDidEnterBackground
 - applicationWillEnterForeground

このメソッドの詳細については、UIApplicationDelegate クラス リファレンスを参照してください。

したがって、これら 2 つの方法を使用して、スナップショットを取得する必要があるイベントと、その画像を表示する必要があるイベントを見つけることができます。

次に、ビューのスナップショットを取得する方法について説明します。そのためのコード スニペットを次に示します。

    // define the frame as per your requirement
    CGRect contextRect  = CGRectMake(0, 0, myView.frame.size.width, 
                                   myView.frame.size.height); 
  // whatever you need

    UIGraphicsBeginImageContext(contextRect.size);  

    [myView.layer renderInContext:UIGraphicsGetCurrentContext()];

  UIImage* viewImage = UIGraphicsGetImageFromCurrentImageContext();

  UIGraphicsEndImageContext();

viewImage画面のスクリーンショット画像を含むオブジェクトです。したがって、この画像をメソッドの UIImageView に表示しますapplicationWillEnterForeground

これが問題の解決に役立つことを願っています

于 2013-03-14T15:47:28.617 に答える