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