自定义UINavigationBar

时间:2013-03-14 17:59:31

标签: ios ios6 uinavigationbar

免责声明:我可能是错误的人提出这个问题,因为我在这种情况下只是一名设计师并且知道关于iOS开发的杰克。

免责声明:我是一名熟练的PHP和JS程序员,因此我的艺术/发展感并没有完全消失。

现在,我们试图重现的设计要求标题栏。目前它是一个UINavigationBar。但是,该元素显然不允许足够的自定义。

  • 条形图的高度应为110像素(Retina)。
  • 它不应该有光泽,边框或可见的背景;整个屏幕应该具有相同的静态不动背景(图像)。
  • 当滚动下方的内容时,该栏应该只有一个投影(也是一个图像,任何内部投影效果都不够)。换句话说,投影图像是“某些内容在这里”的指示符。如果我在Galaxy时代记得正确,Android用户就会熟悉这种行为。

我在这里附上了设计模型的一部分;

Design mockup showcasing the bar behavior

实现这种效果的阻力最小的路径是什么(如果可能,使用原生UINavigationBar,但如果没有,则没有汗水)?

2 个答案:

答案 0 :(得分:1)

实现这一目标的最简单方法是添加一个继承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中导航栏的类名。

答案 1 :(得分:0)

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