导航栏中的图像不会缩小尺寸

时间:2015-09-11 00:08:29

标签: ios swift uiimageview

我正在尝试在导航栏的标题视图中设置图像,但无论我使用的内容模式是什么,图像都很大,超出了导航栏的界限。我将图像设置为条形(在viewDidLoad中):

    let banner = UIImage(named: "banner.png")
    let bannerView = UIImageView(image:banner)
    bannerView.contentMode = UIViewContentMode.ScaleAspectFit
    self.navigationItem.titleView = bannerView

使用ScaleAspectFill有类似的结果。有没有办法缩小图像的大小?我真的很想避免图像编辑。

2 个答案:

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