Swift 设置按钮背景图像与方面适合

Swift 设置按钮背景图像与方面适合,swift,button,Swift,Button,我有一个从url下载的图像。我想将该图像插入按钮,并使用aspect fit使图像看起来正确。我需要使用一个按钮,以便在选择时可以调用函数。我尝试了两种不同的显示图像的方法,但都不起作用: 起初我试着设置背景图像。当我运行模拟器时,图像显示但不是aspectfit,它被拉伸并填满了按钮的全部内容 let url = URL(string: two2) print("Url: \(url!)") URLSession.shared.dataTask(with: url!, comp

我有一个从url下载的图像。我想将该图像插入按钮,并使用aspect fit使图像看起来正确。我需要使用一个按钮,以便在选择时可以调用函数。我尝试了两种不同的显示图像的方法,但都不起作用:

起初我试着设置背景图像。当我运行模拟器时,图像显示但不是aspectfit,它被拉伸并填满了按钮的全部内容

let url = URL(string: two2)
    print("Url: \(url!)")
    URLSession.shared.dataTask(with: url!, completionHandler: { (data, response, error) in
        if error != nil{
            print(error)
            return
        }
        DispatchQueue.main.async {
           let pim = UIImage(data: data!)
           self.centernavlogo.imageView?.contentMode = .scaleAspectFit
           self.centernavlogo.setBackgroundImage(pim, for: .normal)
        }

    }).resume()

然后我尝试了这个,我尝试设置按钮图像而不是背景图像。当我运行模拟器时,按钮里面有一个白色的小盒子。我试着改变色调,看看按钮是否改变了图片的颜色,但没有成功

let url = URL(string: two2)
    print("Url: \(url!)")
    URLSession.shared.dataTask(with: url!, completionHandler: { (data, response, error) in
        if error != nil{
            print(error)
            return
        }
        DispatchQueue.main.async {
            let pim = UIImage(data: data!)
            self.centernavlogo.imageView?.contentMode = .scaleAspectFit
            self.centernavlogo.setImage(pim, for: .normal)

        }

    }).resume()

编辑:

centernavlogo是我拖到情节提要中导航栏中心的一个按钮

@IBOutlet weak var centernavlogo: UIButton!

你试过先硬编码吗?这意味着您可以下载该图像并将其放入资源中,然后直接使用,这样我们就可以缩小问题的范围。您能否更新一下,什么是
centernavlogo
,它的边距是多少?(如果名称是“centerNavLogo”会更好)@t4nhpt我没有尝试过“硬代码”,你能告诉我那会是什么样子吗?此外,我还更新了我的答案,以显示centernavlogo是什么。我的意思是,您应该下载图像,将其放入
xAssets
文件中,然后设置
self.centernavlogo.image=UIImage(名为:“downloadeImage”)
。类似于…@t4nhpt如何将图像保存到xcassets?