【问题标题】:how to add image as the title on large navigation bar in swift?如何在 swift 中将图像添加为大型导航栏上的标题?
【发布时间】:2018-09-30 23:25:42
【问题描述】:

我需要制作一张图片作为 LARGE 导航栏的标题。我使用下面的这个函数在普通导航栏中设置一个图像(我的意思是小的)

func setUpNavigationBarTitleImage() {

    let navController = navigationController!

    let image = UIImage(named: "2-1 H Logo Home.png")!
    let imageView = UIImageView(image: image)

    let bannerWidth = navController.navigationBar.frame.size.width
    let bannerHeight = navController.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

    navigationItem.titleView = imageView
}

但如果我使用该代码,图像似乎不像这样位于导航栏的中心

我需要图像像下图一样位于中心

【问题讨论】:

  • 制作自定义导航栏。
  • 希望对这个答案有所帮助stackoverflow.com/a/31940514/3752143
  • @MitulMarsoniya OP 已经有一个大导航栏,他们在放置添加的子视图时遇到问题。

标签: ios swift uinavigationbar


【解决方案1】:

试试这个:

func setUpNavigationBarTitleImage() {

    let navController = navigationController!

    let image = UIImage(named: "2-1 H Logo Home.png")!
    let imageView = UIImageView(image: image)

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

    imageView.frame = CGRect(x: 0, y: 0, width: bannerWidth, height: bannerHeight)
    imageView.contentMode = .scaleAspectFit
    imageView.center = navController.navigationBar.center

    navigationItem.titleView = imageView
}

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    相关资源
    最近更新 更多