2014-01-05 76 views
0

我想創建UIView,我需要在整個應用程序中可見。 唯一的辦法,我該如何做到這一點,addSubview UIWindow *window = [[UIApplication sharedApplication].windows objectAtIndex:0]。我在做AppDelegate。目前爲止,效果還不錯。如何使objectAtIndex:0始終可見?

window = [UIApplication sharedApplication].keyWindow; 
[[[window subviews] objectAtIndex:0] addSubview:myView]; 

這是在左下角的一個小uiview。 在這個視圖中,我想播放視頻,而您可以在背景中做其他事情。 但是,當我推另一個ViewController,甚至改變rootViewController,它消失了,我需要再次添加它。

是否rootViewController增加到objectAtIndex:0或當我更改rootViewController時,它消除了everthing? 我被嘗試過,在它消失的每個地方都讀過它,但是大多數情況下會有更好的解決方案! 換句話說,我如何添加它,而不會丟失它?

+0

添加視圖作爲子視圖窗口並使用position.z = 100。 – santhu

+0

@santhu我可以如何設置position.z? –

+0

使用view.layer.zPosition – santhu

回答

0

它消失了還是新的視圖添加在它的頂部?

通常,當前視圖控制器將始終在窗口頂部顯示其自己的視圖。

如果你正在展示圖像的背景來看,那麼有辦法讓背景圖像默認情況下所有的屏幕...你必須將它添加到窗口層,

self.view.window.layer.contents = (id)[backgroundImage CGImage]; 
+0

不,它不是背景,它是UIView與自己的框架和東西! –

0

我不不認爲你可以創建一個視圖,在你的應用程序中的每個視圖控制器之上浮動。它違背蘋果的設計視角和視圖控制器的功能。

您可以讓您的應用成爲單個視圖控制器應用,該視圖控制器具有容器查看屏幕大小。然後,你可以使用嵌入賽格瑞嵌入您的應用程序的「真正的視圖控制器樹在容器視圖,然後你可以把你的浮動認爲,最上面的視圖控制器,並得到你想要的效果。

+0

如果它違背蘋果的設計,他們會拒絕我的應用程序,當我嘗試把它放在應用商店? –

0

創建一個新的UIWindow,並給它足夠高的windowLevel(即UIWindowLevelStatusBar應該做的伎倆),然後添加你想成爲可見的窗口,並最終使其由hidden屬性設置爲NO看到的視圖。

+0

interAction在這個創建的UIWindow背後是已經變成了混亂的! –