我有一个 UINavigationBar
的子类。它的 barPosition
是 UIBarPositionTopAttached
。
比我在子类中重写 -(void)drawRect:(CGRect)rect
。作为参数的 rect
始终具有 44 px 高度,并且我只能在该矩形内进行绘制。因此,我无法在状态栏上执行绘图,并且它具有默认外观。如果我将 -drawRect
注释掉,那么它看起来就像预期的那样,导航栏和状态栏看起来是一个整体,并且高度为 64 px。有没有办法通过在 UINavigationBar
的子类中重写 -drawRect:
来实现这种效果?
最佳答案
我遇到了一个带有背景图像的自定义 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 …
希望这有帮助
关于ios - 在自定义 UINavigationBar 中绘图,附加到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19523432/