代码之家  ›  专栏  ›  技术社区  ›  executor21

如何识别GameKit消息窗口?

  •  1
  • executor21  · 技术社区  · 14 年前

    当一个带有游戏工具包的iPhone应用程序启动,并且该设备已经登录到GameCenter时,屏幕顶部会出现一条小消息,上面写着“欢迎回来%用户名!”.

    我发现的是:这条消息本身就出现了 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 函数将返回不是a)警报或b)游戏中心消息的最顶部窗口。我已经有了一个-(uiwindow*)topnonalertwindow,它决定了顶部窗口不是一个警报,但gamekit消息不是,但它(就我而言)也不是一个正常窗口。

    此外,什么? autoresize = RM+BM; 意思是?

    3 回复  |  直到 11 年前
        1
  •  1
  •   executor21    13 年前

    我通过简单检查窗户是否有 GKGameEventView 作为一个子视图。

        2
  •  0
  •   typeoneerror    14 年前

    我一直在使用Game Center并添加 notification system for achievements . 我得到这样的顶窗:

    [[UIApplication sharedApplication] keyWindow]
    

    似乎与警报或游戏中心验证窗口没有冲突。实际上,我的通知被添加了 在下面 那个窗口,所以我认为它在你能访问的任何东西上面的另一层。

        3
  •  0
  •   Brent Clay    11 年前

    关于最后一个问题:

    autoresize=rm+bm;是什么意思?

    rm+bm是 UIViewAutoresizing 面具, UIViewAutoresizingFlexibleRightMargin UIViewAutoresizingFlexibleBottomMargin ,分别。如果在Interface Builder中选择一个UI控件并转到 尺寸检查器 ,自动调整大小图形显示红色“i-beams”,其中控件锚定到其边界视图。如果 Autoresizing = RM+BM ,这意味着您应该看到顶部和左侧的锚梁(i梁)为红色,但右侧和底部的锚梁变暗。这实质上意味着右下边距是灵活的,布局管理器可以在渲染视图时自由调整它们。