Ios 定制UINavigationBar

Ios 定制UINavigationBar,ios,ios6,uinavigationbar,Ios,Ios6,Uinavigationbar,免责声明:我可能问错人了,因为我只是这个场景中的一名设计师,对iOS开发非常了解 免责声明:不过,我是一名精通PHP和JS的程序员,所以我并没有完全丧失开发的艺术感 现在,我们试图重现对标题栏的调用的设计。目前它是一个UINavigationBar。然而,该元素显然不允许进行充分的定制 该条的高度应为110像素(视网膜) 它不应有光泽、边框或可见背景;整个屏幕应具有相同的静态静止背景(图像) 当滚动条下面的内容时,该条应该只有一个阴影(这也是一个图像,任何内部阴影效果都不够)。换句话说,阴影图

免责声明:我可能问错人了,因为我只是这个场景中的一名设计师,对iOS开发非常了解

免责声明:不过,我是一名精通PHP和JS的程序员,所以我并没有完全丧失开发的艺术感

现在,我们试图重现对标题栏的调用的设计。目前它是一个UINavigationBar。然而,该元素显然不允许进行充分的定制

  • 该条的高度应为110像素(视网膜)
  • 它不应有光泽、边框或可见背景;整个屏幕应具有相同的静态静止背景(图像)
  • 当滚动条下面的内容时,该条应该只有一个阴影(这也是一个图像,任何内部阴影效果都不够)。换句话说,阴影图像是“某些内容在这里”的指示器。如果我在Galaxy的日子里没有记错的话,Android用户对这种行为很熟悉
我在这里附上了设计模型的一部分


实现此效果的阻力最小的途径是什么(如果可能,使用本机UINavigationBar,但如果不使用,则无需担心)?

实现此目的的最简单方法是添加一个继承
UINavigationBar
的类,并实现
drawRect
方法在上下文中绘制带阴影的导航栏图像

@interface MynavBar:UINavigationBar
@end

@implementation MynavBar

- (void)drawRect:(CGRect)rect
{
 UIImage *navBarImg=[UIImage imageNamed:@"navBar.png"];
[navBarImg drawRect:rect];
[super drawRect:rect];
}
@end

使用该类作为IB中导航栏的类名。

好吧,在您的情况下,我认为不可能使用
UINavigationBar
。因为默认的
navigationBar
height是只读的,所以不能通过编程方式对其进行更改。有一次,我尝试制作更大的导航栏,但它并没有真正起作用,因为如果需要,您无法控制默认的后退按钮位置。如果您不需要导航栏,我认为您应该使用带有背景图像的自定义视图,这样您就可以随心所欲地设置其框架。

对于有关IDE本身的问题,只使用标记。谢谢据我所知,它看起来会为标题栏放置一个图像;这种方法是否适用于在滚动内容时应用程序的背景(蓝色对角条纹)不应滚动的理想情况?这将起作用!,它在我使用自定义导航栏的应用程序中运行良好。它是在
视图中绘制的固定图像,因此它不会移动@emphram stvanger.@kaar3k如果
navBar.png
的高度为110 px,这会起作用吗?因为drawrect有一个名为
rect
的参数,该参数指定了必须缩放图像的矩形。@kaar3k我知道,但是,正如您从模型中看到的,背景与内容区域是连续的(即,当没有阴影时,您无法分辨标题结束和内容开始的位置)。当用户滚动时,我不希望内容区域的背景移动,从而破坏模式的连续性。用你的方法还能做到吗?