2011-01-07 67 views
0
LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)]; 
LiveStreamTable.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
[self.view addSubview:LiveStreamTable]; 

此代碼位於viewDidLoad中。在viewDidLoad和viewWillAppear之間,表格被調整爲916高度,在底部留下44個空px(這是縱向模式)。我知道它在打印調試信息之間。iPad autoresizingMask創建底部邊距

該視圖在頂部有一個狀態欄和一個導航欄,所以960應該填滿整個屏幕。並且它將autoresizingMask行註釋掉了。我只想讓autoresizingMask在iPad旋轉時影響它,以便橫向模式工作。

我也有一個問題,如果我在第一個地方去橫向的屏幕,那麼它的大小錯誤。它結果有點太寬,太短。我認爲這是相關的。

如何正確使用autoresizingMask,以便我的表格在縱向和橫向都佔據整個視圖(狀態和導航欄除外)?

回答

2

您的自動識別掩碼是正確的,但是您初始化幀的方式不正確。

考慮如果在橫向打開此視圖,則幀(0,0,768,960)會產生錯誤的幀。

代替

LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)]; 

你應該嘗試

LiveStreamTable=[[UITableView alloc]initWithFrame:self.view.bounds]; 

這將根據您當前的ViewController的看法初始化框架。

我希望這個幫助。