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

标签 ios cocoa uinavigationcontroller ios7 uinavigationbar

我有一个 UINavigationBar 的子类。它的 barPositionUIBarPositionTopAttached。 比我在子类中重写 -(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/

相关文章:

android - (Client Authentication) 添加ssl客户端证书到智能设备

objective-c - 如何使用 cocoa objective-c 实现像 Google Chrome for mac 这样的选项卡窗口?

cocoa - 通过网络复制文件夹

objective-c - 自动引用计数和 UINavigationController

ios - 编程过渡丢失导航栏

objective-c - 在 switch 语句中达到默认值后 EXC BAD ACCESS

ios - 移至可见第二个选项卡的分段 View

ios - 以编程方式设置 UITabBarItem 标题?

iphone - 核心数据数组

ios - 为什么我的 UINavigationBar 背景中添加了一种颜色?