在 UINavigationController 中设置时图像不显示在模拟器中
Image not displaying in Simulator when setting it in the UINavigationController
我正在尝试构建一个 Cocoa Touch Class,它在我的情节提要中分配给我的导航控制器,以在中心的导航栏中显示图像。应用程序构建但图像不显示,我知道为什么了。
我正在尝试构建一个 Cocoa Touch Class,它在我的情节提要中分配给我的导航控制器,以在中心的导航栏中显示图像。应用程序构建但图像不显示,我知道为什么了。
class NavBarImg: UINavigationController {
required init(coder aDecoder: NSCoder){
super.init(coder: aDecoder)!
setupView()
}
func setupView()
{
if navigationController == nil{
return
}
let image = #imageLiteral(resourceName: "BarTabsNavLogoWhite")
let imageView = UIImageView(image: image)
let bannerWidth = navigationBar.frame.size.width
let bannerHeight = 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
self.navigationItem.titleView = imageView
}
}
导航控制器不会显示自己的导航项,因此只需将 self.navigationItem.titleView 设置为您创建的 imageView 就不会显示图像。
要么将 navigationItem.titleView 设置为您在导航控制器显示的视图控制器上创建的 imageView,要么将 imageView 作为子视图添加到导航控制器的导航栏中。
后者可以这样进行:
class CustomNavigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
setupNavigationBar()
}
func setupNavigationBar() {
let image = #imageLiteral(resourceName: "BarTabsNavLogoWhite")
let imageView = UIImageView(image: image)
imageView.frame = navigationBar.frame
navigationBar.addSubview(imageView)
}
}
我正在尝试构建一个 Cocoa Touch Class,它在我的情节提要中分配给我的导航控制器,以在中心的导航栏中显示图像。应用程序构建但图像不显示,我知道为什么了。
我正在尝试构建一个 Cocoa Touch Class,它在我的情节提要中分配给我的导航控制器,以在中心的导航栏中显示图像。应用程序构建但图像不显示,我知道为什么了。
class NavBarImg: UINavigationController {
required init(coder aDecoder: NSCoder){
super.init(coder: aDecoder)!
setupView()
}
func setupView()
{
if navigationController == nil{
return
}
let image = #imageLiteral(resourceName: "BarTabsNavLogoWhite")
let imageView = UIImageView(image: image)
let bannerWidth = navigationBar.frame.size.width
let bannerHeight = 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
self.navigationItem.titleView = imageView
}
}
导航控制器不会显示自己的导航项,因此只需将 self.navigationItem.titleView 设置为您创建的 imageView 就不会显示图像。
要么将 navigationItem.titleView 设置为您在导航控制器显示的视图控制器上创建的 imageView,要么将 imageView 作为子视图添加到导航控制器的导航栏中。
后者可以这样进行:
class CustomNavigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
setupNavigationBar()
}
func setupNavigationBar() {
let image = #imageLiteral(resourceName: "BarTabsNavLogoWhite")
let imageView = UIImageView(image: image)
imageView.frame = navigationBar.frame
navigationBar.addSubview(imageView)
}
}