我正在尝试将图像设置为大型导航栏上的标题。到目前为止,我可以让它在顶部中心显示徽标,就像它是标准导航栏一样。
我正在尝试用图像替换“所有收件箱”。
目前我通过使用得到这样的东西self.navigationItem.titleView = UIImageView(image #i ageLiteral(resourceName: “logo pic”))
注意 - 标题文本“设置”不会出现,但徽标/图像在显示为“徽标”的位置。(我希望图像/徽标像第一张图片一样位于下方和左侧)
好吧,您已经可以将图像放置在栏中,所以现在只需调整视图大小,使其适合您想要的位置。
通过调整 框架的大小来做到这一点UIImage
,因为UIImageView
单独调整大小在导航栏中不起作用(请参见此处)。
编辑:经过一些实验,我设法做你想做的事。这有点hack-y,您可能需要为自己找出正确的尺寸值,但我设法实现了这个观点:
这是通过添加一个UIView
标题为“容器”作为 的titleView
,然后包含一个UIImageView
. 虽然“容器”主要限于栏的“顶部”部分,但UIImageView
现在可以在导航栏内自由移动。你可以看到这有点骇人听闻:
在此图像中,您可以看到容器UIView
具有黑色背景色。它不能像titleView
. 检查视图层次结构会显示徽标的位置:
这是通过以下代码实现的:
let logo = UIImage(named: "logo")
let container = UIView(frame: CGRect(x: 0, y: 0, width: 182, height: 132))
container.backgroundColor = UIColor.clear
let imageView = UIImageView(frame: CGRect(x: -132, y: 2, width: 182, height: 132))
imageView.contentMode = .scaleAspectFit
imageView.image = logo
container.addSubview(imageView)
self.navigationItem.titleView = container
正如我所说,这是 hack-y,当然不是 Apple 的意图。此解决方案可能不适用于未来版本的 iOS。
您还可以从那里设置和width
进行height
实验。这一切都是关于通过反复试验手动找到正确的帧值。container
0