0

当 iOS 应用程序将状态从前台更改为后台时,操作系统会拍摄当前视图(屏幕)的快照,当它再次进入前台时,它会显示该快照。当应用程序从后台进入前台时,是否有任何方法(动画或任何东西)截取该快照并显示任何自定义图像?

注意:我不想拍摄任何视图的快照,我只想在应用程序从后台进入前台时显示任何自定义图像,以使其更加清晰,无论操作系统从后台进入前台时显示的任何快照,我想要用我的自定义图像替换该快照,我想要的行为是“每当从背景到前景发生转换时,应用程序每次都会显示我的自定义图像,无论它从哪个视图进入后台。” 提前感谢您的帮助。

4

2 回答 2

2

您可以注册UIApplicationDidEnterBackgroundNotification通知并显示您想要呈现的图像。

于 2013-03-14T14:42:54.907 回答
1

AppDelegate 本身有两种委托方法:

 - applicationDidEnterBackground
 - applicationWillEnterForeground

有关此方法的更多详细信息,请参阅UIApplicationDelegate 类参考

因此,使用这两种方法,您可以找到需要拍摄快照的事件和显示图像的其他事件。

现在,如何拍摄您的视图的快照,所以这里有一个代码片段:

    // 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是包含屏幕截图图像的对象。applicationWillEnterForeground所以在方法中的 UIImageView 中显示这个图像。

希望这可以帮助您解决问题

于 2013-03-14T15:47:28.617 回答