Als this answer shows, ist die einfachste Lösung, um den Text zu Ihrem Bild hinzuzufügen und das Bild auf die Navigationsleiste hinzufügen, etwa so:
var image = UIImage(named: "logo.png")
self.navigationItem.titleView = UIImageView(image: image)
Aber wenn man hinzufügen Text und ein Bild getrennt (z. B. bei der Lokalisierung), können Sie die Titelansicht Ihrer Navigationsleiste so einstellen, dass sie sowohl Bild als auch Text enthält, indem Sie sie zu einer UIView
hinzufügen und die Titelansicht navigationItem
darauf setzen UIView
, zum Beispiel (die Navigationsleiste unter der Annahme ist Teil einer Navigationssteuerung):
// Only execute the code if there's a navigation controller
if self.navigationController == nil {
return
}
// Create a navView to add to the navigation bar
let navView = UIView()
// Create the label
let label = UILabel()
label.text = "Text"
label.sizeToFit()
label.center = navView.center
label.textAlignment = NSTextAlignment.Center
// Create the image view
let image = UIImageView()
image.image = UIImage(named: "Image.png")
// To maintain the image's aspect ratio:
let imageAspect = image.image!.size.width/image.image!.size.height
// Setting the image frame so that it's immediately before the text:
image.frame = CGRect(x: label.frame.origin.x-label.frame.size.height*imageAspect, y: label.frame.origin.y, width: label.frame.size.height*imageAspect, height: label.frame.size.height)
image.contentMode = UIViewContentMode.ScaleAspectFit
// Add both the label and image view to the navView
navView.addSubview(label)
navView.addSubview(image)
// Set the navigation bar's navigation item's titleView to the navView
self.navigationItem.titleView = navView
// Set the navView's frame to fit within the titleView
navView.sizeToFit()
perfekte Antwort, danke Mann –