我目前有一个粒子视图连接到情节提要。我面临的问题是,我在显示此视图的同时显示警报,而警报始终显示在粒子视图的前面。有没有一种方法可以始终将粒子视图放在前面?我正在使用名为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!

更新:

要重叠状态栏,请使用
notificationWindow.windowLevel = UIWindowLevelStatusBar;

关闭UIWindow只是使指向它的强指针无效。就像是:
self.strongPointerToYourWindow = nil;

关于ios - 将粒 subview 移动到屏幕的前面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23149901/

10-10 20:57