绕过 iOS 4 的屏幕截图

Posted

技术标签:

【中文标题】绕过 iOS 4 的屏幕截图【英文标题】:Circumvent screenshot for iOS 4 【发布时间】:2010-07-28 05:27:27 【问题描述】:

我想在切换应用程序之前清除视图,以更改启动图像,以便下次进入应用程序时不会显示一些不安全的数据。

ios 4 提供了applicationDidEnterBackgroundapplicationWillResignActive...但是,在我有机会清除视图之前,它们似乎都无法阻止截屏。

【问题讨论】:

你确定吗?在截屏之前调用-applicationDidEnterBackground: 【参考方案1】:

-applicationDidEnterBackground 确实在屏幕截图之前被调用。原来我只是不恰当地隐藏了我的观点。

清除视图的一种简单方法是在我的UIView 上设置 hidden 属性。

【讨论】:

当尝试同时按下主页按钮和电源按钮(设备的右上角)来捕获屏幕截图时,在 iOS(使用 iOS 6)应用程序中没有获得任何应用程序委托方法。请帮忙。【参考方案2】:

只是为了使用初始化时声明的完整背景图像并隐藏它来添加一个快速解决此问题的代码。

您可以通过注册通知来更复杂地隐藏每个视图的特定内容,并在视图中隐藏您想要隐藏的特定视图(标签)。

另一种解决方案是检查正在显示的视图控制器,并在此视图控制器的视图的不同屏幕截图之间切换,而没有显示数据。

最简单的方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    UIImageView *backgroundView_ = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]];
    self.backgroundView = backgroundView_;
    [backgroundView_ release];

    // Add other controllers views
    // ...

    [self.window bringSubviewToFront:self.backgroundView];
    self.backgroundView.hidden = YES;
    [self.window makeKeyAndVisible];


- (void)applicationDidBecomeActive:(UIApplication *)application 
    self.backgroundView.hidden = YES;
  

- (void)applicationDidEnterBackground:(UIApplication *)application 
    self.backgroundView.hidden = NO;

【讨论】:

以上是关于绕过 iOS 4 的屏幕截图的主要内容,如果未能解决你的问题,请参考以下文章

整个屏幕的 Swift iOS 屏幕截图,包括拆分视图

iOS开发- OpenGL ES屏幕截图

无法在 iTunes Connect 上上传 iOS 应用屏幕截图

iOS - 隐藏的UIView的屏幕截图

iOS:以编程方式制作屏幕截图的最快、最高效的方法是啥?

如果 App 在后台,iOS 会检测屏幕截图