我目前有一個連接到故事板的粒子視圖。我面臨的問題是,我在顯示此視圖的同時顯示警報,並且警報始終顯示在粒子視圖前面。有沒有一種方法可以將粒子視圖置於前面?我正在使用名爲SIAlertView的第三方警報庫,所以我假設它可能是可能的。將粒子視圖移動到屏幕前方?
我記錄了alertView的zPosition並且它始終爲0,所以我將粒子視圖圖層的zPosition設置爲10,但它仍顯示在警報視圖下。
這裏的故事板層次:
我目前有一個連接到故事板的粒子視圖。我面臨的問題是,我在顯示此視圖的同時顯示警報,並且警報始終顯示在粒子視圖前面。有沒有一種方法可以將粒子視圖置於前面?我正在使用名爲SIAlertView的第三方警報庫,所以我假設它可能是可能的。將粒子視圖移動到屏幕前方?
我記錄了alertView的zPosition並且它始終爲0,所以我將粒子視圖圖層的zPosition設置爲10,但它仍顯示在警報視圖下。
這裏的故事板層次:
我不知道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;
謝謝你Avt?我嘗試了這一點,並添加了我的particleView作爲子視圖到這個,它的工作就像一個魅力!我現在的問題是,我完成調用我的方法後如何刪除它?我有一個方法,我打電話給我創建這個notificationWindow並開始我的粒子動畫。 – KingPolygon
順便說一句如何我也隱藏狀態欄?隨着此代碼的添加,狀態欄不再隱藏。 – KingPolygon
我已經更新了答案。請檢查。如果答案是有用的,請upvote /接受它! – Avt
我不確定,但是您對z索引有什麼意義,但是在iOS中使用深度的概念很少。檢查此鏈接http://stackoverflow.com/questions/4631878/how-to-set-iphone-ui-view-z-index 你應該把子視圖頂部或以上的另一種觀點,它會工作,我認爲 –
Thi與z-index沒有任何關係。這是'UIAlertView'的'windowLevel',可以讓所有東西都保持在 – n00bProgrammer
我認爲你可能是正確的。我記錄了alertView的superview,並且獲得了UIWindow。 – KingPolygon