Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 以编程方式在底部设置UIToolbar_Iphone_Ios_Objective C_Ipad_Uitoolbar - Fatal编程技术网

Iphone 以编程方式在底部设置UIToolbar

Iphone 以编程方式在底部设置UIToolbar,iphone,ios,objective-c,ipad,uitoolbar,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 = UIBarStyleBlackTr

我正在以编程方式创建一个
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];

因为我的应用程序是通用的,并且我的view controller类没有任何nib文件,所以我需要为iPad和iPhone定义它,并且我不想使用
UIUserInterfaceIdiomPad

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

[toolbar setFrame:rect2];

试试这个,我希望它可以帮助您

您正在将
rect2
y
位置设置为
[toolbar frame].origin.y
的值,在代码中的该值要么为
nil
,要么指向某个工具栏的其他实例,因为您随后会立即
alloc
init
创建一个新工具栏

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

您应该相对于屏幕底部来定位它,减去工具栏的高度。请尝试以下方法:

CGRect frame = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 44, [[UIScreen mainScreen] bounds].size.width, 44);

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

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

你的问题令人困惑。你能把它修改一下以显示你的意思吗?也许再添加一点代码来展示如何创建工具栏?toolbar.frame=CGRectMake(043632044);向上表示导航栏位置!在创建工具栏框架之前,您不能引用它。您需要首先创建它,然后移动它,或者立即将CGRectMake设置为正确的position。像CGRectMake(0,0,320,480-44),因为我的应用程序是通用的,我的viewController类没有任何nib文件,我需要为iPad和iPhone定义它,我不想使用
UIUserInterfaceIdiomPad
不,我设置了我的rect位置,我没有编写完整的代码对不起!回答得很好,但在使用表视图时,第一个单元格显示在导航栏下方,最后一个单元格显示在toolbar.Nice下方。我一直在使用view.bounds,它将工具栏置于底部上方约20像素处。“这就是诀窍。”贾萨琳:嗨,我也有类似的情况,但在斯威夫特。但是,您的解决方案不起作用,即使它是直接翻译。将显示其他高度值的工具栏,但不会显示此高度值。让toolbar=UIToolbar(框架:CGRectMake(0,UIScreen.mainScreen().bounds.size.height-60,UIScreen.mainScreen().bounds.size.width,60));