我正在尝试在导航栏的标题视图中设置图像,但无论我使用的内容模式是什么,图像都很大,超出了导航栏的界限。我将图像设置为条形(在viewDidLoad中):
let banner = UIImage(named: "banner.png")
let bannerView = UIImageView(image:banner)
bannerView.contentMode = UIViewContentMode.ScaleAspectFit
self.navigationItem.titleView = bannerView
使用ScaleAspectFill有类似的结果。有没有办法缩小图像的大小?我真的很想避免图像编辑。
答案 0 :(得分:2)
看看这个例子:
let imageView = UIImageView(frame: CGRectMake(0, 0, 40, 40))
imageView.contentMode = .ScaleAspectFit
imageView.image = UIImage(named: "logo")
self.navigationItem.titleView = imageView
在这里您可以找到一些网络参考http://www.ioscreator.com/tutorials/customizing-navigation-bar-ios8-swift
此外,您可以解决图像缩放的一些问题,例如iPad2 - 然后在SO Resizing image for icons for iPad2 - swift上查看我的问题
答案 1 :(得分:0)
在长时间搜索了许多未解决的故障单后,我尝试修改约束并使其有效。希望对您有帮助
let banner = UIImage(named: "banner.png")
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)])