解决方法
作为
this answer shows,最简单的解决方案是将文本添加到图像并将该图像添加到导航栏,如下所示:
var image = UIImage(named: "logo.png") self.navigationItem.titleView = UIImageView(image: image)
但是,如果必须单独添加文本和图像(例如,在本地化的情况下),您可以将导航栏的标题视图设置为包含图像和文本,方法是将它们添加到UIView并将navigationItem的标题视图设置为例如UIView(假设导航栏是导航控制器的一部分):
// 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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。