Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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
iOS应用程序中UIToolbar的奇怪行为_Ios_Objective C_Uinavigationcontroller_Uitoolbar - Fatal编程技术网

iOS应用程序中UIToolbar的奇怪行为

iOS应用程序中UIToolbar的奇怪行为,ios,objective-c,uinavigationcontroller,uitoolbar,Ios,Objective C,Uinavigationcontroller,Uitoolbar,在我当前的项目中,我有一个基于导航控制器的应用程序。应用程序中的某些视图需要在视图底部设置工具栏。我使用以下内容以编程方式创建工具栏(摘自表视图控制器中的viewDidLoad): 这在大多数视图中都很有效。然而,我现在使用相同的代码将其合并到另一个视图中。在该控制器中,工具栏显示在视图底部上方约一英寸处——它不会像在其他视图控制器中那样捕捉到视图底部。导航到问题视图后,其他视图中的其他工具栏开始显示相同的行为。这只在模拟器中发生,而不是在我的物理设备上。然而,我目前只有一台iPhone4作为我

在我当前的项目中,我有一个基于导航控制器的应用程序。应用程序中的某些视图需要在视图底部设置工具栏。我使用以下内容以编程方式创建工具栏(摘自表视图控制器中的viewDidLoad):


这在大多数视图中都很有效。然而,我现在使用相同的代码将其合并到另一个视图中。在该控制器中,工具栏显示在视图底部上方约一英寸处——它不会像在其他视图控制器中那样捕捉到视图底部。导航到问题视图后,其他视图中的其他工具栏开始显示相同的行为。这只在模拟器中发生,而不是在我的物理设备上。然而,我目前只有一台iPhone4作为我的物理设备。这是模拟器中的错误还是某个地方的问题?谢谢

您正在将y位置设置为硬编码值438。这将导致它不会出现在较高的iPhone(5)的屏幕底部。您还应使用以下公式计算y位置:

CGRectGetMaxY(self.view.bounds) - toolbarHeight
这将导致:

[self.navigationController.toolbar setFrame:CGRectMake(CGRectGetMinX(self.view.bounds),
                                                   CGRectGetMaxY(self.view.bounds) - toolbarHeight,
                                                   CGRectGetWidth(self.view.bounds),
                                                   toolbarHeight)];

它还可能与导航栏和状态栏的存在有关

是否该特定视图控制器隐藏了状态栏?
[self.navigationController.toolbar setFrame:CGRectMake(CGRectGetMinX(self.view.bounds),
                                                   CGRectGetMaxY(self.view.bounds) - toolbarHeight,
                                                   CGRectGetWidth(self.view.bounds),
                                                   toolbarHeight)];