我已经在stackoverflow上搜索了很多,我还没能找到解决我的问题的方法,我需要将navigationBar放在中间部分图像和文本旁边,但显然我只能放置图像或只是文字
这是我的代码
let nav = self.navigationController?.navigationBar
nav?.barStyle = UIBarStyle.Default
nav?.tintColor = UIColor.blackColor()
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
imageView.contentMode = .ScaleAspectFit
let image = UIImage(named: "icon_heart")
imageView.image = image
self.navigationItem.title = "App name"
self.navigationItem.titleView = imageView
我知道它以这种方式只接受titleView的图像,但我不能想到一些正常的解决方案而且不知道它是否可能。此外,如果不可能,我怎么能制作空白图像并将图标图像和文本相邻绘制,然后附加新图像。
编辑: 根据awph的答案,我添加了这样的代码,它适用于我的情况,我的标题中总是有相同的字符
let screenSize: CGRect = UIScreen.mainScreen().bounds
let nav = self.navigationController?.navigationBar
nav?.barStyle = UIBarStyle.Default
nav?.tintColor = UIColor.blackColor()
let imageView = UIImageView(frame: CGRect(x: screenSize.width / 2 - 40, y: 15, width: 20, height: 20))
imageView.contentMode = .ScaleAspectFit
let image = UIImage(named: "icon_heart")
imageView.image = image
nav!.addSubview(imageView)
// label on top of the application that contain word
var label = UILabel(frame: CGRectMake(0, 0, 0, 0))
label.center = CGPointMake(screenSize.width / 2 - 15, 17)
label.textColor = UIColor.blackColor()
label.font = UIFont.systemFontOfSize(14)
label.textAlignment = NSTextAlignment.Center
label.text = "App Name"
label.sizeToFit()
nav!.addSubview(label)
答案 0 :(得分:1)
你说得对,如文档中所述:
//用于代替标题的自定义视图。可以水平放大。仅在项目位于堆栈顶部时使用。
您需要做的是创建UIView
,添加UImageView
(包含您的图片)作为子视图(view.addSubview(imageView)
),然后添加UILabel
它view.addSubview(label)
。