Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 缩小导航栏中的图像_Ios_Xcode_Swift - Fatal编程技术网

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
a
frame
。因此它是原始图像的大小,太大了。正如你自己所说,你需要缩小规模。要么给图像视图一个
框架来缩放图像视图,要么把它画得更小来缩放图像。

算出了!使用了错误的导航代码

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)])