覆盖ios7中的drawRect失败

时间:2013-09-22 15:09:45

标签: override uinavigationbar ios7

对于iOS6中的自定义布局,我创建了UINavigationBar的子类并重写了drawRect方法。我在界面构建器中指定了类,因为并非每个控制器都需要具有此效果。这也是我不能使用类别的原因。

但是现在使用iOS7,我想使用默认导航栏而不是覆盖行为。以下代码不起作用:

-(void)drawRect:(CGRect)rect
{
    if([self isOS7]) {
       [super drawRect:rect];
    } 
    else {
        // custom drawing
    }
}

问题是,通过实际定义drawRect,ios7无法正确绘制状态栏下的导航栏。如果我遗漏了整个画笔,它可以工作(但是它在旧设备下不起作用!

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你可以解决它,如果你把一个新的UIView添加为Subview并在那里做一些东西而不是在draw rect中。

UITableViewCell drawInRect iOS7