Как я могу определить окно сообщения GameKit?
-
02-10-2019 - |
Вопрос
Когда приложение для iPhone с запусками GameKit, и устройство уже вошел в GameCenter, небольшое сообщение скользит в верхней части экрана, что-то говорит по строкам «ReCome Back% Isername!».
То, что я узнал, это следующее: это сообщение появляется в своем собственном UIWindow
В конце концов скользит сообщение и освобождает себя. Когда сообщение на экране экрана вы можете выйти из следующего:
all windows: (
"<UIWindow: 0x31fc70; frame = (0 0; 320 480); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x31fe60>>",
"<UIWindow: 0x3874c0; frame = (0 0; 320 480); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x387590>>"
)
Мне нужно отличить два окна в общем случае - мне нужно что-то вдоль линий -(UIWindow *)topNormalWindow
Функция, которая вернет самого верхнего окна, которое не является а) оповещением или б) сообщение Gamecenter. У меня уже есть a - (uiwindow *) topnonalertwindow, который определяет верхнее окно, которое не предупреждение, но сообщение Gamekit не, но и не так (для моих целей) нормальное окно.
Кроме того, что делает autoresize = RM+BM;
иметь в виду?
Решение
Я решил эту проблему, просто проверил, имел ли окно GKGameEventView
как субпросмотр.
Другие советы
Я использовал игровой центр и добавив Система уведомлений для достижений. Отказ Я получаю топ-окно, как это:
[[UIApplication sharedApplication] keyWindow]
Похоже, не противоречит оповещениям или окну аутентификации Game Center. На самом деле, мои уведомления добавляются под Это окно, так что я думаю, что один на другом слою выше всего, что вы можете получить доступ.
Что касается вашего последнего вопроса:
Что делает AUTORSIZE = RM + BM; иметь в виду?
RM + BM является сокращением для UIViewAutoresizing
маски, UIViewAutoresizingFlexibleRightMargin
а также UIViewAutoresizingFlexibleBottomMargin
, соответственно. Если вы выбираете управление интерфейсом интерфейса в интерфейсе и перейдите к Размер инспектора, графический автосализатор показывает красные «i-лучи», где элемент управления привязан к его ограничивающему представлению. Если Autoresizing = RM+BM
, это означает, что вы должны увидеть верхние и левые якорные лучи (i-балки) в красном, но правые и нижние отдаются. Это, по сути означает, что правая и нижняя поля гибкими, а менеджер макета свободен настроить их при рендере представления.