2014-04-18 34 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

相关问题