1

当带有 GameKit 的 iPhone 应用程序启动并且设备已经登录到 GameCenter 时,屏幕顶部会滑入一条小消息,上面写着“欢迎回来 %username!”。

我发现如下:该消息以自己的形式出现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;意思?

4

3 回答 3

1

我通过简单地检查窗口是否有一个GKGameEventView作为子视图来解决这个问题。

于 2010-10-28T19:05:03.090 回答
0

我一直在使用 Game Center 并为成就添加通知系统。我得到这样的顶部窗口:

[[UIApplication sharedApplication] keyWindow]

似乎与警报或游戏中心身份验证窗口没有冲突。事实上,我的通知是那个窗口下添加的,所以我认为一个在你可以访问的任何东西之上的另一层。

于 2010-10-02T18:54:45.343 回答
0

关于你的最后一个问题:

autoresize = RM+BM 是什么意思?意思是?

RM+BM 分别是UIViewAutoresizing掩码UIViewAutoresizingFlexibleRightMargin和的简写UIViewAutoresizingFlexibleBottomMargin。如果您在 Interface Builder 中选择一个 UI 控件并转到Size Inspector,则 Autosizing 图形将显示红色的“I-Beams”,其中该控件被锚定到其边界视图。如果Autoresizing = RM+BM,则表示您应该看到顶部和左侧的锚梁(工字梁)为红色,但右侧和底部的锚梁变暗。这实质上意味着右边距和下边距是灵活的,布局管理器可以在渲染视图时自由调整它们。

于 2013-03-13T17:30:57.787 回答