首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >缩小导航栏中的图像

缩小导航栏中的图像
EN

Stack Overflow用户
提问于 2015-05-21 08:47:34
回答 2查看 1.6K关注 0票数 1

我在导航栏中有一个图像,它有点太大了,并且重叠在导航栏之外。我想缩小图像以适应栏的大小。我现在拥有的代码是:

代码语言:javascript
复制
let banner = UIImage(named: "banner.png")
let imageView = UIImageView(image:banner)
imageView.contentMode = UIViewContentMode.ScaleAspectFit
self.navigationItem.titleView = imageView

但ScaleAspectFit似乎不起作用。

编辑:我更新了我的问题,添加了一个框架:

代码语言:javascript
复制
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

但是我现在得到了这个错误

代码语言:javascript
复制
fatal error: unexpectedly found nil while unwrapping an Optional value

在bannerWidth变量声明上。

EN

回答 2

Stack Overflow用户

发布于 2015-05-21 09:54:05

想明白了!使用了错误的导航代码

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2019-06-12 03:44:21

要调整图像的大小,请尝试修改navigationItem.titleView的约束,它对我有效。

代码语言:javascript
复制
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)])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30362741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档