我在导航栏中有一个图像,它有点太大了,并且重叠在导航栏之外。我想缩小图像以适应栏的大小。我现在拥有的代码是:
let banner = UIImage(named: "banner.png")
let imageView = UIImageView(image:banner)
imageView.contentMode = UIViewContentMode.ScaleAspectFit
self.navigationItem.titleView = imageView
但ScaleAspectFit似乎不起作用。
编辑:我更新了我的问题,添加了一个框架:
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变量声明上。
发布于 2015-05-21 09:54:05
想明白了!使用了错误的导航代码
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
发布于 2019-06-12 03:44:21
要调整图像的大小,请尝试修改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)])
https://stackoverflow.com/questions/30362741
复制相似问题