Solo per aggiungere uno snippet di codice per una soluzione rapida a questo problema utilizzando un'immagine di sfondo completa dichiarata sull'inizializzazione e nascondendola.
È possibile eseguire una mascheratura più sofisticata del contenuto specifico di ogni vista registrandosi alla notifica e nelle viste nascondere le viste particolari (etichette) che si desidera nascondere.
Un'altra soluzione è controllare quale viewcontroller viene visualizzato e passare tra schermate diverse della vista di questo viewcontroller senza i dati visualizzati.
Il modo più semplice:
- (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;
}
Sei sicuro? '-applicationDidEnterBackground:' viene chiamato prima di prendere lo screenshot. – kennytm
Hai ragione. Errore mio. – akaru