2012-03-13 63 views
2

這是一個奇怪的分配。我有一個更復雜的應用程序,我不會在這裏詳細介紹,但它的一個特點是,每次連接到服務器時,它都會覆蓋一切半透明的黑色視圖。添加子視圖在臨時分佈中表現不同

我再補充一點看法是這樣的:

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

當我在模擬器或設備上運行它,一切正常:如預期的那樣黑屏覆蓋一切。

奇怪的部分是這樣的:我將應用程序歸檔,將其打包爲一個.ipa文件,然後使用itunes(或TestFlight)將它安裝到手機上。當我這樣做時,在某些地方,黑色覆蓋圖會以大約10個像素點的方式偏移到屏幕的右上角,例如frame.origin.x將會是10,而frame.origin.y將會是-10。

有沒有人知道在將應用程序構建爲.ipa時會有什麼不同,這會使其表現如此不同。我擔心這種情況也不會發生,因爲我將在部署時進行構建。

回答

4

不同之處在於它將在歸檔期間使用發佈設置進行構建(例如,優化級別s通常與優化級別0進行調試)。

您沒有設置可能導致問題的http.progressView.view的框架。將其設置爲窗口的applicationFrameUIScreen

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

OMG!它實際上工作:))。我對解決這個問題抱有很低的希望。謝謝你一堆! – 2012-03-13 10:57:55

+0

對於誰可能關心,這裏是馬特上面說的代碼翻譯:在添加子視圖之前添加以下代碼:http.progressView.view.frame = appDelegate.window.screen.applicationFrame; – 2012-03-13 11:00:10

+0

@NicolaeSurdu - 添加到我的答案。 – mattjgalloway 2012-03-13 11:13:16

相關問題