导航栏图片
问题描述:
我来到这里这样的错误:导航栏图片
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
什么是错我的代码?我尝试将图像添加到navcontroller,我可以在这里看到图像。
func addNavBarImage() {
let nc = navigationController!
let image = UIImage(named: "2.png")
let imageView = UIImageView(image: image)
let bwidth = nc.navigationBar.frame.size.width
let bheight = nc.navigationBar.frame.size.height
let bannerx = bwidth/2 - (image?.size.width)!/2
let bannery = bheight/2 - (image?.size.height)!/2
imageView.frame = CGRect(x: bannerx, y: bannery, width: bwidth, height: bheight)
imageView.contentMode = .scaleAspectFit
navigationItem.titleView = imageView
}
答
当你没有必要一个合法的图像您收到此错误信息添加到您的let image = UIImage(named: "2000")
。它是nil
。您的代码在let bannerx = bwidth/2 - (image?.size.width)!/2
上崩溃。确保您在该行之后继续执行之前拥有正确的映像。
替换:
let image = UIImage(named: "2.png")
有了:
guard let image = UIImage(named: "2") else { return }
这样做,你鸵鸟政策需要强制选择使用下面的行,因此更换以下行的bannerx
和bannery
与你:
let bannerx = bwidth/2 - (image.size.width)/2
let bannery = bheight/2 - (image.size.height)/2
究竟哪一行导致错误? – rmaddy