1

GameKitを搭載したiPhoneアプリが起動し、デバイスがすでにGameCenterにログインしている場合、画面の上部に小さなメッセージがスライドし、「Welcome back%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>>" )

一般的なケースでは、2つのウィンドウを区別する必要が-(UIWindow *)topNormalWindowあります。A)アラートでもB)ゲームセンターメッセージでもない、一番上のウィンドウを返す関数の行に沿ったものが必要です。アラートではないトップウィンドウを決定する-(UIWindow *)topNonAlertWindowがすでにありますが、ゲームキットメッセージはそうではありませんが、(私の目的では)通常のウィンドウでもありません。

また、どういうautoresize = RM+BM;意味ですか?

4

3 に答える 3

1

この問題は、ウィンドウGKGameEventViewにサブビューとしてあるかどうかを確認するだけで解決しました。

于 2010-10-28T19:05:03.090 に答える
0

最後の質問について:

autoresize = RM+BM; とは何ですか? 平均?

RM+BM は、それぞれUIViewAutoresizingマスクUIViewAutoresizingFlexibleRightMarginおよびの省略形ですUIViewAutoresizingFlexibleBottomMargin。Interface Builder で UI コントロールを選択し、[サイズ インスペクター] に移動すると、自動サイズ設定のグラフィックに、コントロールが境界ビューに固定されている赤い「I ビーム」が表示されます。の場合Autoresizing = RM+BM、上部と左側のアンカー ビーム (I ビーム) が赤で表示されますが、右側と下部のアンカー ビームは淡色表示されます。これは基本的に、右マージンと下マージンが柔軟であり、ビューのレンダリング中にレイアウト マネージャーが自由に調整できることを意味します。

于 2013-03-13T17:30:57.787 に答える
0

私は Game Center を使用しており、実績の通知システムを追加しています。私はこのようなトップウィンドウを取得します:

[[UIApplication sharedApplication] keyWindow]

アラートやゲーム センターの認証ウィンドウと競合していないようです。実際、私の通知はそのウィンドウのに追加されるので、アクセスできるものの上にある別のレイヤーにあると思います。

于 2010-10-02T18:54:45.343 に答える