2012-03-13 15 views
2

これは奇妙なものです。私はここでは詳しく説明しないより複雑なアプリケーションを持っていますが、その特徴の1つは、サーバに接続するたびに、すべてのものの上に半透明の黒いビューを重ねることです。サブビューの追加は、アドホックな配信では異なる動作をします

私はこのようにそのビューを追加します。私は、シミュレータ上またはデバイス上でそれを実行すると

MyAppDelegate *appDelegate = (MyAppDelegate *)app.delegate; 
[appDelegate.window addSubview:http.progressView.view]; 

、すべてがうまく機能:予想通り、黒い画面は他のすべてをオーバーレイします。

私はアプリケーションをアーカイブし、.ipaファイルとしてパックし、それをiTunes(またはTestFlight)を使用して電話機にインストールします。私がこれを行うと、いくつかの場所で、黒いオーバーレイは、frame.origin.xが10になり、frame.origin.yが-10になるように、約10ピクセルで画面の右上にオフセットされます。

アプリケーションを異なるように動作させる.ipaとしてアプリケーションをビルドするときに、何が違うかも知れません。私は展開のためにビルドするときにもこれが起こらないことを恐れています。

答えて

4

違いは、アーカイブ中のリリース設定(たとえば、最適化レベルs、通常はデバッグ用の最適化レベル0)でビルドされる点です。

http.progressView.viewのフレームを設定していないと、問題の原因となる可能性があります。

http.progressView.view.frame = appDelegate.window.screen.applicationFrame; 
+0

OMG:それは、ウィンドウのUIScreenapplicationFrameになるように設定!それは実際に働いた:))。私はこれを解決することに対する低い希望を持っていました。あなたに束をありがとう! –

+0

誰が気にしているかもしれないが、ここでmattが言ったことのコード変換があります:サブビューを追加する前に、次のコードを追加してください:http.progressView.view.frame = appDelegate.window.screen.applicationFrame; –

+0

@NicolaeSurdu - 私の答えにそれを加えました。 – mattjgalloway

関連する問題