views:

297

answers:

2

Hello guys!

In the interface builder, I can set the alignment for my UIToolbar to be at the bottom of my screen or to be at my top of my screen. How can this be done programatically?

A: 

You set the UIToolBar's frame or center. It's not alignment it's position. Can be done like so: [myToolBar setFrame: CGRectMake(x, y, width, height)];
//OR
[myToolBar setCenter: CGPointMake(x, y)];

If the UIToolBoor is auto aligned in IB, it's because IB is programmed to help you position stuff.

~ Natanavra.

natanavra
A: 
  • (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated];

    //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];

    //Create a button UIBarButtonItem *infoButton = [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:self action:@selector(info_clicked:)];

    [toolbar setItems:[NSArray arrayWithObjects:infoButton,nil]];

    //Add the toolbar as a subview to the navigation controller. [self.navigationController.view addSubview:toolbar];

[[self tableView] reloadData];

}

  • (void) info_clicked:(id)sender {

    [self.navigationController popViewControllerAnimated:YES]; [toolbar removeFromSuperview];

    }