1

我有一个UINavigationBar. 它barPositionUIBarPositionTopAttached。比我-(void)drawRect:(CGRect)rect在我的子类中覆盖。作为参数的rect, 总是 44 px 高度,我只能在这个矩形内绘制。所以,我无法在状态栏上进行绘图,它具有默认外观。如果我注释掉-drawRect,它看起来像预期的那样,导航栏和状态栏看起来是一个整体,并且有 64 像素的高度。-drawRect:有没有办法通过在子类中覆盖来实现这种效果UINavigationBar

4

1 回答 1

0

当我在 drawRect 中添加图像时,我遇到了一个带有背景图像的自定义 UINavigationBAr 的问题,该问题不会出现在 iOS 7 的半透明状态栏下。

将背景图移到 ViewControllers 的 viewDidLoad 方法后,背景图随即出现在状态栏下方

-(void)viewDidLoad
{
 if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad)
{
    UIImage *image = [UIImage imageNamed:@"nav-bg-ipad.png"];
    [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}else{
    UIImage *image = [UIImage imageNamed:@"nav-bg-iphone.png"];
    [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}
// do your other stuff now …

希望这会有所帮助

于 2013-11-12T00:22:07.253 回答