繁体   English   中英

iOS7 NavigationBar在视觉上每个segue从44点增加到64点

[英]iOS7 NavigationBar visually grows from 44 to 64 points every segue

我正在使用Three20(ack!)编写的旧代码库。 现在,我们需要能够将此应用程序部署到iOS7和iOS6。

通常,它是可行的,但是当用户点击并在视图控制器之间进行切换时,在过渡动画期间会使用44点导航栏来绘制导航栏,但是当动画结束时,它将捕捉到64点高。

因此,切换视图...平滑...黄油... 猛击 洗涤,漂洗,重复。

在任何iOS 7 iPhone大小的设备上,从一种视图切换到另一种视图时,都会产生颤抖的效果。 有趣的是,它仅在从一个视图切换到另一个视图时发生,而不是在切换到当前ViewController的新实例时发生。

我会显示代码,但不确定要显示什么代码。

我非常感谢所有指示(RTFM评论很高兴被接受),这次我的Google-fu让我失败了。

视图层次结构如下所示:UIScreen TTNavigatorWindow UILayoutContainerView UINavigationTransitionView UIViewControllerWrapperView UIView TTTableView UITableViewWrapperView ...依此类推...

这是three20问题,其中three20假定导航栏始终高44点,但现在不是吗?

这是Interface Builder的问题,其中导航栏只能在44个点处创建,并且应该在我的代码中很好地解决这一问题吗?

这是否是一个深奥的iOS 7问题,因为Navigator位于顶层,因此需要定期更改高度吗?

这是一个文档问题,我的(显然是微不足道的)观察力只是没有看到Apple文档中的相关内容?

谢谢,

-肯

首先,我想建议您摆脱Three20。 我知道这对您的情况不是很有帮助,但确实如此。

但是,我想向您提供两种可能发生的想法:

  • Three20确实在各个地方都使用了硬编码的导航栏大小,但是我认为这不会引起您在此处描述的问题。 尽管可以肯定,但我可能会在其他地方导致iOS7问题。

  • 根据您的描述,这听起来像是iOS7计算导航栏高度的方式。 某种程度上可以推测Three20如何管理视图的原因,使其对于普通的UIKit可以正常工作。 如果将整个视图堆栈向屏幕底部向下移动1 px,会发生什么情况? 我猜想,导航栏不会更改其大小。 要了解这一点,请看一下iOS7如何计算导航栏高度 我想您想拥有的是整个动画中的64像素导航栏。 我必须弄清楚如何在动画之前修改显示的视图控制器的框架以实现该效果。

我希望其中一些想法会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM