Agung
Agung

Reputation: 13893

how to add image as the title on large navigation bar in swift?

I need to make an image as the title of the LARGE navigation bar. I use this function below to set an image in the normal navigation bar ( i mean the small one)

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
}

but if i use that code, the image seems not in the center of the navigation bar like this

enter image description here

I need the image to be more in the center like the picture below

enter image description here

Upvotes: 2

Views: 3212

Answers (1)

Wendra
Wendra

Reputation: 517

try this :

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
}

Upvotes: 3

Related Questions