【问题标题】:UIToolBar center.y returns value off the screenUIToolBar center.y 在屏幕外返回值
【发布时间】:2013-04-26 11:31:45
【问题描述】:

我正在对可见的 UIToolBar 的 self.navigationController.toolbar.center.y 执行 NSLog。我在 UIViewController 中显示 UIToolBar。

这个 (self.navigationController.toolbar.center.y) 返回 590 个点(在视网膜 4 英寸模拟器上运行)。

这在我的脑海中就在可见屏幕的下方:

  • 视网膜 4 英寸是 568 点高度
  • 590 比 568 高(低)22 个点
  • 22 磅是 UIToolbar 默认高度的一半

我不明白为什么会这样?

更新

还应注意我在此应用程序中使用 [[UINavigationController alloc] initWithNavigationBarClass:nil toolbarClass:[QuestionToolbar class] 来创建自定义工具栏。

【问题讨论】:

  • 这很奇怪,我这样做的时候得到 546。
  • 嗯。很好,你得到了“正确”的结果。我会继续调查。但我绕过了它并使用了返回为 568 的 origin.y 方法,并基于此更改了逻辑。所以可能需要一段时间我才能回来并提供任何更新。感谢您的调查。
  • 嗯...这个数字也不对,应该是 524。但它确实解释了为什么你的 center.y 是 590。就像它认为工具栏的底部是原点而不是顶..
  • 这是一个我应该从一开始就包含的细节,我正在使用 [[UINavigationController alloc] initWithNavigationBarClass:nil toolbarClass:[QuestionToolbar class] 方法在应用程序中拥有一个自定义工具栏。跨度>
  • 调用时工具栏是否可见。

标签: ios coordinates uitoolbar


【解决方案1】:

我敢打赌,在调用获取工具栏坐标时,工具栏还不可见。想想看。如果导航控制器将工具栏保持在屏幕外,那么它的 y 原点将是 568 - 屏幕的确切高度。

现在将 22 与 568 相加,得到... 590。因此,工具栏位于屏幕底部。尝试更改检查坐标的位置/时间。另外,请确保工具栏实际上是可见的:)

【讨论】:

  • 这是在 viewWillAppear 上调用的
  • @drc 试试viewDidAppear
猜你喜欢
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多