Перемещение частиц в переднюю часть экрана?

В настоящее время у меня есть вид частиц, связанный с раскадровкой. Проблема, с которой я сталкиваюсь, заключается в том, что я показываю предупреждение одновременно с этим представлением, и предупреждение всегда отображается перед представлением частиц. Есть ли способ, где я всегда могу разместить вид частиц впереди? Я использую стороннюю библиотеку оповещений под названием SIAlertView, поэтому я предполагаю, что это возможно.

Я зарегистрировал zPosition в alertView, и оно всегда равно 0, поэтому я установил zPosition для слоя моего вида частиц на 10, но оно все равно отображается под представлением предупреждений.

Вот иерархия раскадровки:

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!

ОБНОВИТЬ:

Для перекрытия также используйте строку состояния.

notificationWindow.windowLevel = UIWindowLevelStatusBar;

отклонить UIWindow просто лишить законной силы сильный указатель на него. Что-то вроде:

self.strongPointerToYourWindow = nil;
Другие вопросы по тегам