我創建了一個帶主視圖和模式視圖的圖像展示應用程序,圖像輪播作爲屏幕保護程序。每當觸摸屏幕時,該模式視圖就會滑落。閃爍UIImageView
如果設備在應用程序運行時獨自呆了很長時間(過夜),則在屏幕保護程序模式啓動時屏幕會重繪問題。它看起來像操作系統沒有畫主屏幕的背景圖像。主屏幕上的控件和文本應該像他們應該畫的那樣,只有背景圖像被來自模態的隱藏動畫的僞影所取代。這發生在兩臺設備(iPad 2 3G 16GB)上。只有當應用程序運行了很長時間纔會發生這種情況,並且屏幕是否打開也無關緊要。有問題的背景UIImageView是一個vanilla UIImageView,除了「Image」被改變之外沒有任何屬性。
它看起來像這樣(客戶端的標誌和一些文字模糊了):http://tinypic.com/view.php?pic=2qx47bt&s=6
的東西可能是錯誤的任何想法,如何解決?
編輯: 這是隱藏屏幕保護程序的代碼。非常標準,沒有hocus pocus。
- (void)hideScreenSaver {
dispatch_async(dispatch_get_main_queue(), ^{
if (![[[self mainViewController] presentedViewController] isKindOfClass:[UINavigationController class]]) {
[[self mainViewController] dismissModalViewControllerAnimated:TRUE];
}
});
}
的screensaverViewController在創建 - (BOOL)申請:(UIApplication的*)應用程序didFinishLaunchingWithOptions:(NSDictionary的*)launchOptions(在主線程)
[[GMAppManager sharedManager] setScreenSaverViewController:[[AAScreenSaverViewController alloc] initWithNibName:@"AAScreenSaverViewController" bundle:nil]];
你可以發佈一些與動畫相關的代碼嗎? –
@MarceloFabri我在上面添加了一些代碼,但沒有什麼奇怪的事情發生在那裏。 –
爲什麼你需要dispatch_async?如果你不使用它會發生什麼? – meronix