Ios 缩小导航栏中的图像
我在导航栏中有一个图像,它有点太大,重叠在导航栏之外。我想缩小图像的比例,使其适合酒吧内部。我现在的代码是:Ios 缩小导航栏中的图像,ios,xcode,swift,Ios,Xcode,Swift,我在导航栏中有一个图像,它有点太大,重叠在导航栏之外。我想缩小图像的比例,使其适合酒吧内部。我现在的代码是: let banner = UIImage(named: "banner.png") let imageView = UIImageView(image:banner) imageView.contentMode = UIViewContentMode.ScaleAspectFit self.navigationItem.titleView = imageView 但是ScaleSpec
let banner = UIImage(named: "banner.png")
let imageView = UIImageView(image:banner)
imageView.contentMode = UIViewContentMode.ScaleAspectFit
self.navigationItem.titleView = imageView
但是ScaleSpectFit似乎不起作用
编辑:我通过添加框架更新了我的问题:
let banner = UIImage(named: "banner.png")
let imageView = UIImageView(image:banner)
var bannerWidth = navigationItem.titleView!.frame.width
var bannerHeight = navigationItem.titleView!.frame.height
var bannerx = navigationItem.titleView!.frame.size.width / 2 - banner!.size.width / 2
var bannery = navigationItem.titleView!.frame.size.height / 2 - banner!.size.height / 2
imageView.frame = CGRect(x: bannerx, y: bannery, width: bannerWidth, height: bannerHeight)
imageView.contentMode = UIViewContentMode.Center
self.navigationItem.titleView = imageView
但是我现在得到了错误
fatal error: unexpectedly found nil while unwrapping an Optional value
在bannerWidth变量声明上
但是ScaleSpectFit似乎不起作用
当然可以。问题是,您没有提供任何可缩放的比例。您没有给
imageView
aframe
。因此它是原始图像的大小,太大了。正如你自己所说,你需要缩小规模。要么给图像视图一个框架来缩放图像视图,要么把它画得更小来缩放图像。算出了!使用了错误的导航代码
let banner = UIImage(named: "banner.png")
let imageView = UIImageView(image:banner)
var bannerWidth = navigationController?.navigationBar.frame.size.width
var bannerHeight = navigationController?.navigationBar.frame.size.height
var bannerx = bannerWidth! / 2 - banner!.size.width / 2
var bannery = bannerHeight! / 2 - banner!.size.height / 2
imageView.frame = CGRect(x: bannerx, y: bannery, width: bannerWidth!, height: bannerHeight!)
imageView.contentMode = UIViewContentMode.ScaleAspectFit
self.navigationItem.titleView = imageView
若要调整图像大小,请尝试修改navigationItem.titleView的约束,它对我有效
let banner = UIImage(named: "banner")
let bannerView = UIImageView(image: banner)
bannerView.contentMode = UIViewContentMode.ScaleAspectFit
self.navigationItem.titleView = bannerView
NSLayoutConstraint.activate([self.navigationItem.titleView!.heightAnchor.constraint(equalToConstant: 22),self.navigationItem.titleView!.widthAnchor.constraint(equalToConstant: 128)])