別のUIViewControllerをプッシュするUINavigationControllerがあります。このUIViewControllerでは、ポートレートモードではUITableViewを表示し、横長モードでは別のビューを表示します。UIViewController画面が表示されない
したがって私のviewDidLoadでは、私はUIViewを作成して、これに2つのViewControllerを追加しています。私の問題は、それがロードされるとき、私は上に次の白いマージンを得ることです。
私はこれが(以下私のステップ3で)ためであると考え
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
[[self view] setFrame:appFrame];
は、フルスクリーンを返し、マイナスナビゲーションバーされていません。これは正しいですか?もしそうなら、どうすれば白いマージンがないようにフルサイズで返すことができますか?
- (void)viewDidLoad
{
[super viewDidLoad];
// Step 1 - Set up the tableDataView for vertical layout
TableDataViewController *tableController = [[TableDataViewController alloc] init];
self.tableDataViewController = tableController;
[tableController release];
// Step 2 - Set up the graphView for horizontal layout
GraphViewController *graphController = [[GraphViewController alloc]
initWithNibName:@"GraphViewController" bundle:nil];
self.graphViewController = graphController;
[graphController release];
// Step 3 - Get the screen size
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
[[self view] setFrame:appFrame];
// Step 4 - Add the vertical view to the containerView
// and then add the containerView to this controller
containerView = [[[UIView alloc] initWithFrame:appFrame] autorelease];
[[self view] addSubview:containerView];
[containerView addSubview:[tableDataViewController view]];
// Step 5 - Add to the active view so we can test for it later
activeView = [tableDataViewController view];
}
感謝
マイク
のようなものでなければなりませんので、あなたは、カスタムビューを埋めたい:Screenbounds {{0,0}、{ 320,480}}、スクリーンフレーム{{0,20}、{320,460}}。理想的には、[[UIScreen mainScreen] bounds]を使って最大サイズを取得する必要があります。しかし、私はこれを行い、ナビゲーションバーの下に白い余白が残っています。それはそれを完全に無視しているようです。マイク。 – hydev
私はちょうどこれを使って遊んでいて、** CGRect appFrame **を設定したものを完全に無視しているようです。私はちょうどCGRectMake(0,0,20,20)と違いはありませんでした。 tableControllerとgraphControllerは何らかの形で動作します。 – hydev