导航控制器图像而不是文本

Posted

技术标签:

【中文标题】导航控制器图像而不是文本【英文标题】:Navigation Controller image instead of text 【发布时间】:2015-10-19 05:05:56 【问题描述】:

我正在尝试将徽标 (png) 文件放入我的导航控制器。我找到了一种“有效”的解决方案,但它并没有缩小图像以适应,因此它是巨大的

这是我目前使用的代码,但它使图像变大

let logoImage:UIImage = UIImage(named: "logo.png")!
    self.navigationItem.titleView = UIImageView(image: logoImage)

【问题讨论】:

@DharmeshKheni 你想要我的所有代码还是我之前尝试过的代码让它变得巨大? 与您的导航控制器图像相关的代码。 【参考方案1】:

试试这个:

let logo = UIImage(named: "logo.png")
let imageView = UIImageView(image:logo)
imageView.contentMode = UIViewContentMode.ScaleAspectFit  //you need to set this.

self.navigationItem.titleView = imageView

如果你想给出高度和宽度,然后添加:

imageView.frame.size.width = 200
imageView.frame.size.height = 45

【讨论】:

【参考方案2】:

您可以通过 2 种方式进行操作:以编程方式或通过 XCode:

一个简单的方法是通过 XCode。为此,从对象库中拖动view 并将其拖动到您的导航栏。稍后从对象库中拖入导航栏中UIImageView 中的view。就是这样。

或者您可以通过编程方式完成所有这些操作。

    var myView = UIView()
    var imageView = UIImageView()
    imageView.image = UIImage(named: "your_image_here")

    myView.addSubview(imageView)
    navigationController?.navigationBar.addSubview(myView)

【讨论】:

以上是关于导航控制器图像而不是文本的主要内容,如果未能解决你的问题,请参考以下文章

使用默认导航栏文本

将 Slick 轮播导航箭头与幻灯片图像而不是其下方的文本垂直对齐

导航控制器标题未显示

Swift导航栏中图像的动画变化

在代码中使用导航控制器而不是 rootviewcontroller

在导航控制器上添加片段而不是替换片段?