我已将自定义 titleView
添加到我的 UINavigationItem
,其中包含一个旨在位于状态栏下方的 View 。它看起来不错,当我按下另一个 View Controller 并在标准的从右到左动画中过渡时,它看起来不错。但是,当我 [self.navigationController popViewControllerAnimated:YES]
时,它会剪辑此 View 的顶部,直到动画完成。请参阅附图以获得对问题的更好解释。
直到弹出动画完成后,它才看起来又正常了。我已经尝试了我能想到的一切。在 viewController
和 navigationBar
的所有 View 上将 cropsToBounds
设置为 NO
。我还尝试了 layer.masksToBounds
以及几乎所有听起来很熟悉的属性。我添加了一个计时器,用于打印 navigationBar 和自定义 titleView
的框架矩形,它们似乎没有任何改变。
有人知道我做错了什么吗?
最佳答案
两种方法:
if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) { // if iOS 7
self.edgesForExtendedLayout = UIRectEdgeNone; //layout adjustements
}
或者
您需要设置 View Controller 的 Delta。从实用程序区域(第一项)将 Story board 切换到 ios6.1 或更高版本。然后选择您的 Vc 的 View ,在实用区域的大小检查器菜单中,框架下方将有增量部分。每个三角洲前都会有一个三角形。将 y 三角形化为 64(你应该使用 Storyboard的 ios6.1 或更高版本)。
如果您需要有关 Deltas 的帮助,请访问: Interface Builder: What are the UIView's Layout iOS 6/7 Deltas for?
关于ios - UINavigationBar 剪辑顶部内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21061858/