不透明导航栏的背景图像在 iPhone 上呈现不正确 6
Background image of opaque navigation bar is rendered incorrectly on iPhone 6
当我用方法设置背景图片时
setBackgroundImage:forBarMetrics:
在iPhone6
上是这样渲染的
如果我将导航栏设置为 translucent
,它会正常拉伸。
@implementation OHCNavigationBar
- (id)initWithCoder:(NSCoder *)aDecoder {
if(self = [super initWithCoder:aDecoder]) {
[self setupGradient];
}
return self;
}
- (instancetype)initWithFrame:(CGRect)frame {
if(self = [super initWithFrame:frame]) {
[self setupGradient];
}
return self;
}
- (void)setupGradient {
UIImage *gradientImage = [UIImage imageNamed:@"navigationBarBackground.png"];
[self setBackgroundImage:gradientImage forBarMetrics:UIBarMetricsDefault];
}
@end
您可以通过将边缘设置为 0 来设置 UINavigationBar
具有非重复模式的背景图像。
UIImage *gradientImage32 = [[UIImage imageNamed:@"bkg_top_header_default.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearance] setBackgroundImage:gradientImage32
forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setBackgroundImage:gradientImage32 forBarMetrics:UIBarMetricsDefault];
更新 1:
- (void)setupGradient {
UIImage *gradientImage = [[UIImage imageNamed:@"navigationBarBackground.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0) resizingMode:UIImageResizingModeStretch];
[self setBackgroundImage:gradientImage forBarMetrics:UIBarMetricsDefault];
}
希望对您有所帮助。
享受编码!!
当我用方法设置背景图片时
setBackgroundImage:forBarMetrics:
在iPhone6
上是这样渲染的如果我将导航栏设置为 translucent
,它会正常拉伸。
@implementation OHCNavigationBar
- (id)initWithCoder:(NSCoder *)aDecoder {
if(self = [super initWithCoder:aDecoder]) {
[self setupGradient];
}
return self;
}
- (instancetype)initWithFrame:(CGRect)frame {
if(self = [super initWithFrame:frame]) {
[self setupGradient];
}
return self;
}
- (void)setupGradient {
UIImage *gradientImage = [UIImage imageNamed:@"navigationBarBackground.png"];
[self setBackgroundImage:gradientImage forBarMetrics:UIBarMetricsDefault];
}
@end
您可以通过将边缘设置为 0 来设置 UINavigationBar
具有非重复模式的背景图像。
UIImage *gradientImage32 = [[UIImage imageNamed:@"bkg_top_header_default.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearance] setBackgroundImage:gradientImage32
forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setBackgroundImage:gradientImage32 forBarMetrics:UIBarMetricsDefault];
更新 1:
- (void)setupGradient {
UIImage *gradientImage = [[UIImage imageNamed:@"navigationBarBackground.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0) resizingMode:UIImageResizingModeStretch];
[self setBackgroundImage:gradientImage forBarMetrics:UIBarMetricsDefault];
}
希望对您有所帮助。
享受编码!!