以编程方式在底部的UIToolbar

时间:2011-11-28 13:12:08

标签: iphone ios objective-c ipad uitoolbar

我正在以编程方式创建UIToolbar,但问题是此工具栏的位置已启动(导航栏位置)。如何将其自动放在底部?

这是我的代码:

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

因为我的应用程序是通用的,我的视图控制器类没有任何nib文件,我需要为iPad和iPhone定义它,我不想使用UIUserInterfaceIdiomPad

3 个答案:

答案 0 :(得分:11)

您将rect2的{​​{1}}位置设置为y的值,该值位于代码中的[toolbar frame].origin.y或指向其他位置工具栏的实例,因为您之后会立即nilalloc一个新的工具栏。

即使工具栏在设置框架时有效,也不能将其当前的init值用作新的y值,因为它将是y

您应该相对于屏幕底部定位,减去工具栏的高度。试试这个:

0

答案 1 :(得分:9)

这会创建一个底部对齐的工具栏

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

答案 2 :(得分:0)

CGRect rect2 = CGRectMake(0, toolBar.frame.origin.y , self.view.frame.size.width , 0);

[toolbar setFrame:rect2];

尝试这个我希望它可以帮到你