I am writing an app with navigationBar, tableView, and toolBar programatically. I want the app to work in landscape and portrait mode. Below is my loadView method:
Code:
//Add the table view //initWithFrame:CGRectMake(0.0f, 44.0f, 320.0f, 436.0f) ];
UITableView *tableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame] style:UITableViewStylePlain];
tableView.autoresizingMask = (UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight);
tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
tableView.delegate = self;
tableView.dataSource = self;
self.view = tableView;
//[self.navigationController.view addSubview:tableView];
[tableView release];
//Initialize the toolbar
toolbar = [[UIToolbar alloc] init];
toolbar.barStyle = UIBarStyleDefault;
//Set the toolbar to fit the width of the app.
[toolbar sizeToFit];
//Caclulate the height of the toolbar
CGFloat toolbarHeight = [toolbar frame].size.height;
//Get the bounds of the parent view
CGRect rootViewBounds = self.parentViewController.view.bounds;
//Get the height of the parent view.
CGFloat rootViewHeight = CGRectGetHeight(rootViewBounds);
//Get the width of the parent view,
CGFloat rootViewWidth = CGRectGetWidth(rootViewBounds);
//Create a rectangle for the toolbar
CGRect rectArea = CGRectMake(0, rootViewHeight - toolbarHeight, rootViewWidth, toolbarHeight);
//Reposition and resize the receiver
[toolbar setFrame:rectArea];
//Add the toolbar as a subview to the navigation controller.
[self.navigationController.view addSubview:toolbar];
The problems are twofold:
1. The toolbar is pushed off the screen when in landscape mode
2. The toolbar covers the last row of the tableview in portrait
If I hardcode the frame of the tableview, it does not rotate properly. If I add the tableview as a subview to the navigationController.view, I see two tableviews overlaid in landscape mode.
How can I get both the tableview and toolbar to rotate and scale properly? Thanks in advance.
This successfully positions the toolbar and tableview so they dont overlap. However, at startup the toolbar covers the last cell in the tableview, but when I transitition to landscape, then back to portrait, it is corrected!
I have changed the frame of the tableview in loadview to CGRectMake(0.0, 0.0, 480.0, 236.0), but it doesnt help. How could I correct this?