2014-12-03 82 views
-1

我想将图像用作我的导航栏的背景。我可以将图像放入栏中,但它看起来不正确。我附上了所需背景的图像,以及我得到的结果。使用自定义图像作为UINavigationController的导航栏的背景

此外,这是我用来将图像放入酒吧背景的代码。

navigationController.navigationBar.setBackgroundImage(UIImage(named:"Top Bar Slice"), forBarMetrics: UIBarMetrics.Default) 

编辑: 答案之一得到了图像到代码,但现在它是瓷砖-ING整个酒吧。有没有办法来解决这个问题?

我现在使用的应用程序委托该代码:

UINavigationBar.appearance()了setBackgroundImage(的UIImage(命名为: “顶酒吧”),forBarMetrics:UIBarMetrics.Default)

+0

图片我想作为背景使用 http://i.stack.imgur.com/b7w4m.png 结果使用上述代码 HTTP://我.stack.imgur.com/Z7p2i.png – Dominic 2014-12-03 05:33:04

+0

尺寸是否匹配? – 2014-12-03 06:07:29

+0

图像的大小是640x90我相信 – Dominic 2014-12-03 16:31:34

回答

1

您需要覆盖UINavigationBar.appearance()

选项1:

let image = UIImage(named: "yourImage") 
UINavigationBar.appearance().setBackgroundImage(image, forBarMetrics: UIBarMetrics.Default) 

选项2:

UINavigationBar.appearance().setBackgroundImage(UIImage(named: "yourimage"), forBarMetrics: UIBarMetrics.Default) 

您还可以将titleView添加到viewController中的导航项。

选项3:

navigationItem.titleView = UIImageView(image: UIImage(named: "yourimage")) 
+0

我尝试了两种解决方案,但都不适合我。两者在导航栏中都没有显示任何内容。原始代码用于在那里获取图像,但没有正确设置它的大小 – Dominic 2014-12-03 16:33:02

+0

我能够在应用程序代理中使用您的代码,但是现在我的图像偏离了中心并重叠了状态栏。有没有办法设置背景图片的框架?谢谢! – Dominic 2014-12-04 16:38:17

+0

不与.setBackgroundImage。你可以在你的视图控制器添加一个UIImageView到navigationItem.titleView在你的viewDidLoad navigationItem.titleView = UIImageView(image:UIImage(named:“yourImage”)) 我编辑了我的答案。 – gabemorales 2014-12-08 18:56:24