iOS 11 NavigationBar中的Logo和title
iOS 11 Logo and title in NavigationBar
我已经搜索和尝试了好几天,但由于这是一个新事物,所以可用的信息不多(或者我找不到)。
无论如何,我正在尝试使用 iOS 11
中的新 NavBar 功能,但我想在我的 [=13= 中同时放置徽标和大标题(每个 ViewController
) ].类似于下面的屏幕截图:
如何实现这个?
侧面提示:
对于 iOS 10
中的相同 app
我将徽标设置为显示而不是 NavBar
中的 titleView
但现在在较新的版本中我们也想添加标题。
提前致谢
您是否尝试过为导航栏设置背景图片?像这样:
// Set Navigation bar background Image
let navBgImage:UIImage = UIImage(named: "[image.jpg]")!
self.navigationController!.navigationBar.setBackgroundImage(navBgImage, for: .default)
没有您的代码示例,很难说出您出了什么问题,但这确实有效:
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 11, *) {
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always
title = "Your title"
}
let titleImageView = NavigationImageView()
titleImageView.image = UIImage(named: "yourImageName")
navigationItem.titleView = titleImageView
}
编辑:要为您的标题视图设置自定义大小,您可以子类化您的 UIView
(UIImageView) 并覆盖 sizeThatFits
class NavigationImageView: UIImageView {
override func sizeThatFits(_ size: CGSize) -> CGSize {
return CGSize(width: 50, height: 50)
}
}
我已经搜索和尝试了好几天,但由于这是一个新事物,所以可用的信息不多(或者我找不到)。
无论如何,我正在尝试使用 iOS 11
中的新 NavBar 功能,但我想在我的 [=13= 中同时放置徽标和大标题(每个 ViewController
) ].类似于下面的屏幕截图:
如何实现这个?
侧面提示:
对于 iOS 10
中的相同 app
我将徽标设置为显示而不是 NavBar
中的 titleView
但现在在较新的版本中我们也想添加标题。
提前致谢
您是否尝试过为导航栏设置背景图片?像这样:
// Set Navigation bar background Image
let navBgImage:UIImage = UIImage(named: "[image.jpg]")!
self.navigationController!.navigationBar.setBackgroundImage(navBgImage, for: .default)
没有您的代码示例,很难说出您出了什么问题,但这确实有效:
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 11, *) {
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always
title = "Your title"
}
let titleImageView = NavigationImageView()
titleImageView.image = UIImage(named: "yourImageName")
navigationItem.titleView = titleImageView
}
编辑:要为您的标题视图设置自定义大小,您可以子类化您的 UIView
(UIImageView) 并覆盖 sizeThatFits
class NavigationImageView: UIImageView {
override func sizeThatFits(_ size: CGSize) -> CGSize {
return CGSize(width: 50, height: 50)
}
}