看來我似乎可能會誤解一些東西。我有一個全屏的iPad應用程序,沒有狀態欄或其他任何東西。它也始終處於橫向模式,所以我不需要擔心肖像。我使用正確的框架以編程方式創建視圖,但是當視圖實際加載並顯示時,框架似乎不同。查看加載後框架變化
這裏是我用來生成視圖代碼(我添加更多的東西下面的觀點,但他們沒有與我的問題):
- (void)loadView{
self.view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 1024.0, 768.0)];
backgroundImage = [[UIImageView alloc] initWithFrame:self.view.bounds];
[backgroundImage setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
[self.view addSubview:backgroundImage];
}
鑑於沒有出現,我的NSLog的self.view框架並獲得{{-128, -128}, {1024, 768}}
。大小是正確的,但原點已經改變。爲了看看會發生什麼,我嘗試初始化視圖的起點爲128,128,這產生了一幀{{0, -256}, {1024, 768}}
,我也無法解釋。
誰能告訴我發生了什麼?我嘗試着設置自動調整大小的口罩等,並沒有真正改變任何東西。我有點卡住了。
只是沒有任何意義 - 如何從一個筆尖加載的視圖可以在加載時正確設置其幾何圖形,但是當代碼中創建視圖時(它可以在與筆尖同時設置的同時進行設置被加載)我們不能設置任何的框架,直到稍後在加載過程中? –
一般的做法是在'loadView'中只初始化'self.view',你仍然可以用一個硬編碼框架來初始化它,但是在'viewWillAppear:'方法之前,自動調整屏蔽不會有任何效果,並且你不能指望他們在'viewDidLoad'中,因爲在這種方法中,視圖層次結構是從nib文件或手動設置的。我會更新我對這些方法的回答,以及應該做什麼和在哪裏。 – graver