UINavigationBar的半透明背景图像(PNG24)仅在旋转后显示透明

我正在使用一个类别来实现UINavigationBar的自定义背景。

 @implementation UINavigationBar (UINavigationBarCategory) - (void)drawRect:(CGRect)rect { UIImage *img = [UIImage imageNamed: @"TopNav-YellowRule.png"]; [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; } @end 

我使用的图像是半透明的PNG24。 当应用程序加载的UINavigationBar的背景显示出来就好,但不是半透明的 – 我看不到UINavigationBar下的视图。

当我旋转设备,但是,图像突然半透明,工作得很好。 任何想法正在发生什么旋转是允许图像按预期显示? 有没有办法解决这个问题,以便它在初始加载时正确显示,在旋转之前?

尝试添加@end后。 看看是否有帮助

 navgationController.navigationBar.backgroundColor = [UIColor clearColor];