編輯2:當我啓動應用程序而沒有狀態欄在最上面時,所有的行爲都按照計劃進行。有了狀態欄,我無法按照自己的意願行事。它看起來好像UINavigationController通過減去狀態欄的20個像素來不斷調整內容視圖的大小。我不知道。調整iPhone的keywindow的主視圖的大小
我創建了一個簡單的基於UINavigationController的應用程序。此導航控制器中的根視圖是一個UITableView。在某個特定時間,我想從底部向上滑動80像素的高度。頂部的整個視圖(由UINavigationController控制的視圖)應調整大小,並縮小80像素以騰出空間放置新底部視圖。
這基本上是我用來重新定位視圖的代碼:
-(void)showTeaser {
float adHeight = 80;
[adView setFrame:CGRectMake(0.0,self.navigationController.view.bounds.size.height, 320.0, 80.0)];
[[[UIApplication sharedApplication] keyWindow] addSubview:adView];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[adView setAlpha:1.0];
[adView setFrame:CGRectMake(0.0,self.navigationController.view.bounds.size.height-adHeight, 320.0, 80.0)];
[self.navigationController.view setFrame:CGRectMake(0.0,0.0, 320.0, self.navigationController.view.bounds.size.height-adHeight)];
[self.view setFrame:CGRectMake(0.0, 0, 320.0, self.view.bounds.size.height-adHeight)];
[UIView commitAnimations]; }
我降低了導航欄的α,設定的UITableViewController的視圖爲紅色。新的觀點是紫色的。
這是發生了什麼事。首先截圖初始狀態。一切都看起來很正常。第二張屏幕截圖顯示更改幀後的狀態。 UITableviewController的視圖始終在導航欄下推動20個像素。另外,如果我嘗試向keywindow添加更多視圖,它們總會比我預期的高20個像素。它幾乎看起來像鍵窗口(減去導航欄)被推高了20個像素。
編輯1:不管我調整什麼尺寸來看,它總是20像素。
讓我的加欣賞到keywindow都錯了嗎?我不應該這樣做嗎?
alt text http://www.hans-schneider.de/iphone-seo/1.pngalt text http://www.hans-schneider.de/iphone-seo/2.png
我已經玩過我的tableviewcontrollers視圖的自動確定屏蔽,但這並沒有改變基本問題。 – Haentz 2009-11-23 10:45:05