4

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

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

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

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

有什么建议么?

4

1 回答 1

1

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

UITableViewCell drawInRect iOS7

于 2013-10-09T07:09:01.283 回答