0

免责声明:我可能问错了人,因为我只是这种情况下的设计师,并且对 iOS 开发非常了解杰克。

免责声明:然而,我是一名熟练的 PHP 和 JS 程序员,所以我并没有完全失去开发的艺术/意识。

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

  • 该条的高度应为 110 像素(Retina)。
  • 它不应有光泽、边框或可见背景;整个屏幕应该有相同的静止不动的背景(图像)。
  • 当它下面的内容被滚动时,该栏应该只有一个阴影(这也是一个图像,任何内部阴影效果都不够)。换句话说,投影图像是“某些内容在此处”的指示符。如果我没记错的话,Android 用户对这种行为很熟悉。

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

展示酒吧行为的设计模型

实现这种效果的阻力最小的路径是什么(如果可能,使用本机 UINavigationBar,但如果没有,则无需出汗)?

4

2 回答 2

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 中导航栏的类名。

于 2013-03-14T18:29:09.163 回答
0

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

于 2013-03-14T18:55:57.017 回答