ios - 在 UINavigationController 中设置图像时不显示图像

标签 ios swift uinavigationcontroller

我正在尝试构建一个分配给我的导航 Controller (在我的 Storyboard中)的 Cocoa Touch 类,以在导航栏的中心显示图像。该应用程序已构建,但图像未显示,我不明白为什么。

enter image description here

class NavBarImg: UINavigationController {


    required init(coder aDecoder: NSCoder){
        super.init(coder: aDecoder)!
        setupView()
    }

    func setupView(){
        if navigationController == nil {
            return
        }

        let image = #imageLiteral(resourceName: "BarTabsNavLogoWhite")
        let imageView = UIImageView(image: image)

        let bannerWidth = navigationBar.frame.size.width
        let bannerHeight = navigationBar.frame.size.height

        let bannerX = bannerWidth / 2 - image.size.width / 2
        let bannerY = bannerHeight / 2 - image.size.height / 2

        imageView.frame = CGRect(x: bannerX, y: bannerY, width: bannerWidth, height: bannerHeight)
        imageView.contentMode = .scaleAspectFit

        self.navigationItem.titleView = imageView  

    }
}

最佳答案

为 UINavigationController 创建一个 cocoa touch 类 > 实现下面的代码 > 将类分配给 Storyboard中的导航 Controller 。

class NavControllerClass: UINavigationController {

override func viewDidLoad() {
    super.viewDidLoad()
    setupNavigationBar()

}

func setupNavigationBar()
{
    let image = #imageLiteral(resourceName: "BarTabsNavLogoWhite")
    let imageView = UIImageView(image: image)
    imageView.frame = navigationBar.frame
    imageView.contentMode = .scaleAspectFit
    navigationBar.addSubview(imageView)
}

}

关于ios - 在 UINavigationController 中设置图像时不显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48361479/

相关文章:

ios - WKWebView - 如何获取我们刚刚触摸的输入类型的属性

ios - 如何在 Swift 2 中将结构转换为 Anyobject?

ios - 如何在 Swift 中传递带有未知参数并返回值作为参数的函数

swift - 为什么我的自定义转换不适用于我的导航 Controller ?

ios - UINavigationController 和自动布局顶部布局指南的奇怪行为

ios - UISearchController 不要将 viewcontroller 推到前面而是在 UISearchController 下面

javascript - JS - 检测 UIwebView

ios - 如何在 Swift 3/4 中更改 MapKit 的引脚颜色?

ios - 如何防止 iOS 在 Swift 中自动为数字加下划线?

ios - watchOS 不能 sendMessage() 一个结构