2014-04-18 65 views
1

我目前有一個連接到故事板的粒子視圖。我面臨的問題是,我在顯示此視圖的同時顯示警報,並且警報始終顯示在粒子視圖前面。有沒有一種方法可以將粒子視圖置於前面?我正在使用名爲SIAlertView的第三方警報庫,所以我假設它可能是可能的。將粒子視圖移動到屏幕前方?

我記錄了alertView的zPosition並且它始終爲0,所以我將粒子視圖圖層的zPosition設置爲10,但它仍顯示在警報視圖下。

這裏的故事板層次:

enter image description here

+0

我不確定,但是您對z索引有什麼意義,但是在iOS中使用深度的概念很少。檢查此鏈接http://stackoverflow.com/questions/4631878/how-to-set-iphone-ui-view-z-index 你應該把子視圖頂部或以上的另一種觀點,它會工作,我認爲 –

+0

Thi與z-index沒有任何關係。這是'UIAlertView'的'windowLevel',可以讓所有東西都保持在 – n00bProgrammer

+0

我認爲你可能是正確的。我記錄了alertView的superview,並且獲得了UIWindow。 – KingPolygon

回答

1

我不知道SIAlertView但正常UIAlertView中通過單獨的窗口中顯示。如果你想重複它,你不能改變zpozition做到這一點,你也必須使用一個單獨的窗口:

// do not forget to keep strong reference for it somewhere! 
UIWindow *notificationWindow; 

//your frame here! 
notificationWindow = [[UIWindow alloc] initWithFrame: some_cgrect]; 

notificationWindow.backgroundColor = [UIColor clearColor]; // your color if needed 
notificationWindow.userInteractionEnabled = NO; // if needed 

// IMPORTANT PART! 
notificationWindow.windowLevel = UIWindowLevelAlert + 1; 

notificationWindow.rootViewController = [UIViewController new]; 
notificationWindow.hidden = NO; // This is also important! 

UPDATE:

要還重疊的狀態欄使用

notificationWindow.windowLevel = UIWindowLevelStatusBar; 

關閉UIWindow只會使強指針無效。例如:

self.strongPointerToYourWindow = nil; 
+0

謝謝你Avt?我嘗試了這一點,並添加了我的particleView作爲子視圖到這個,它的工作就像一個魅力!我現在的問題是,我完成調用我的方法後如何刪除它?我有一個方法,我打電話給我創建這個notificationWindow並開始我的粒子動畫。 – KingPolygon

+0

順便說一句如何我也隱藏狀態欄?隨着此代碼的添加,狀態欄不再隱藏。 – KingPolygon

+0

我已經更新了答案。請檢查。如果答案是有用的,請upvote /接受它! – Avt

相關問題