Перемещение частиц в переднюю часть экрана?
В настоящее время у меня есть вид частиц, связанный с раскадровкой. Проблема, с которой я сталкиваюсь, заключается в том, что я показываю предупреждение одновременно с этим представлением, и предупреждение всегда отображается перед представлением частиц. Есть ли способ, где я всегда могу разместить вид частиц впереди? Я использую стороннюю библиотеку оповещений под названием 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;