我正在尝试构建一个Cocoa Touch类,它在我的Storyboard中分配给我的导航控制器,以在中心的导航栏中显示图像。应用程序构建但图像不显示,我可以找出原因。
我正在尝试构建一个Cocoa Touch类,它在我的Storyboard中分配给我的导航控制器,以在中心的导航栏中显示图像。应用程序构建但图像不显示,我可以找出原因。
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
}
}
答案 0 :(得分:0)
导航控制器不会显示自己的导航项,因此只需将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)
}
}