在自定义UINavigationBar中绘图,附加到顶部

时间:2013-10-22 16:30:17

标签: ios cocoa uinavigationcontroller ios7 uinavigationbar

我有一个UINavigationBar的子类。它是barPosition UIBarPositionTopAttached。 比我在我的子类中重写-(void)drawRect:(CGRect)rect。作为参数出现的rect总是高44像素,我只能在这个矩形内画画。因此,我无法在状态栏上执行绘制,并且它具有默认外观。如果我评论-drawRect,看起来比预期的那样,导航栏和状态栏看起来整体并且高度为64像素。是否有办法在-drawRect:的子类中覆盖UINavigationBar来实现此效果?

1 个答案:

答案 0 :(得分:0)

我遇到了一个带有背景图像的自定义UINavigationBAr的问题,当我在drawRect中添加图像时,它不会出现在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 …

希望这会有所帮助