Reputation: 13893
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
I need the image to be more in the center like the picture below
Upvotes: 2
Views: 3212
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