在iOS7中的NavigationBar剪辑背景图像; ClipsToBound:NO不工作

时间:2013-11-12 11:40:16

标签: ios objective-c background-image navigationbar clipped

我设置的背景图像略大于navigationBar。图像高度为55px。[我想在导航栏底部用横幅看图像的横幅] 它在iOS6中运行正常。 但是在iOS7中,它会被自己剪掉。 我尝试过设置 [self.navigationController.navigationBar setClipsToBounds:NO];

它仍在削减。 如果没有剪裁,我不能拥有更大的背景图片吗?

3 个答案:

答案 0 :(得分:1)

这是由于Ui导航栏在ios7中是64点,为什么这会造成问题。 请参阅链接 https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/Bars.html参考表5-1 ,这可以让您了解可调整大小的图片新ios7中的更改

您可以使用UIBarPositioning propety来解决您的问题,但这可能对您有所帮助 有关UIBarPositioning

的更多信息,请参阅此链接

https://developer.apple.com/library/ios/documentation/uikit/reference/UIBarPositioning_Protocol/Reference/Reference.html#//apple_ref/occ/intfp/UIBarPositioning/barPosition

编辑 也尝试通过设置此标志 navigationBar.translucent = NO;

了解更多信息,请参阅此链接 iOS 7 UINavigationBar - UIView layout issue

答案 1 :(得分:0)

图像没有被剪裁,很可能只是太小了。 iOS 7中的UINavigationBar为64点,因此55px图像太小,特别是考虑到需要128px的视网膜分辨率。

答案 2 :(得分:0)

将导航栏的代理设置为视图控制器,并在委托方法中返回UIBarPositionTopAttached。返回你想看的位置

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar

https://developer.apple.com/library/ios/documentation/uikit/reference/UIBarPositioning_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UIBarPositioning