UINavigationbar在iPhone 4中显示2个重叠的背景图像

时间:2014-03-14 04:50:39

标签: ios iphone objective-c uinavigationbar

UINavigationBar在iPhone 4上显示2个背景图像。一个在中间。但是一个更大,位于UINavigationBar的右侧。我在iPhone 5上测试过它并没有发生。任何建议请。

请参阅

上的图片

http://s27.postimg.org/5jvzqp04z/header.png

对不起,我没有足够的声誉在这里发布图片。

1 个答案:

答案 0 :(得分:0)

试试这个:

navigationBar.translucent = NO;,iOS7中默认为YES。

请阅读此UINavigationBar文档:

iOS 7上的新行为。默认为YES。您可以通过将属性设置为NO来强制使用不透明背景。如果导航栏具有自定义背景图像,则默认值是从图像的α值推断出的,如果它具有alpha< 1.0如果将setTranslucent:YES发送到具有不透明自定义背景图像的条形图,则会将小于1.0的系统不透明度应用于图像。如果您将setTranslucent:NO发送到具有半透明自定义背景图像的条形图,它将使用条形图的barTintColor(如果已定义)为图像提供不透明背景,如果barTintColor为零,则为UIBarStyleBlack提供黑色或UIBarStyleDefault为白色。

设置' navigationBar.translucent'如果您在具有较旧iOS版本的设备/模拟器中运行项目,则值会导致异常。

添加如下版本检查:

 float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
 if (systemVersion >= 7.0)
 {
navigationBar.translucent = NO;
 }

另一种选择是设置:

vc.edgesForExtendedLayout = UIRectEdgeNone;

希望这会对你有所帮助。干杯:)