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