Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically UIToolbar on the bottom

I am creating a UIToolbar programmatically but the issue is the position of this tool bar is up (navigation bar position). how can I put it automatically on the bottom?

Here is my code:

    CGRect rect2 = CGRectMake(0, toolBar.frame.origin.y , self.view.frame.size.width , 0);
    toolBar = [[UIToolbar alloc]initWithFrame:rect2];
    toolBar.barStyle = UIBarStyleBlackTranslucent;
    [toolBar sizeToFit];
    [self.view addSubview:toolBar];
    [toolBar release];

because my application is universal and my view controller class does not have any nib file I need to define it for both iPad and iPhone, and I don't want use UIUserInterfaceIdiomPad.

like image 348
iOS.Lover Avatar asked Nov 28 '11 13:11

iOS.Lover


2 Answers

You're setting rect2's y position to the value of [toolbar frame].origin.y, which at that point in the code is either nil, or pointing to some other instance of a toolbar, because you then immediately afterwards alloc and init a new toolbar.

Even if the toolbar was valid when you set it's frame, you can't use it's current y value as the new y value, because it will be 0.

You should position it relative to the bottom of the screen, minus the height of the toolbar. Try this instead:

CGRect frame = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 44, [[UIScreen mainScreen] bounds].size.width, 44);
like image 169
Jasarien Avatar answered Sep 20 '22 22:09

Jasarien


This creates a bottom aligned toolbar

CGRect frame, remain;
CGRectDivide(self.view.bounds, &frame, &remain, 44, CGRectMaxYEdge);
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:frame];
[toolbar setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin];
[self.view addSubview:toolbar];
like image 26
neoneye Avatar answered Sep 19 '22 22:09

neoneye