如何在按钮上设置图像

How to set image on button

我是 swift 的新手,我搜索了不同的地方,但找不到任何有用的东西。

在这种情况下,我在按下按钮时从 UIImagePickerController 中选择了一张图片:

@IBAction func chooseImage(_ sender: Any){}

有效,我可以访问照片库并选择图片,但是.. 问题是我想将它设置为按钮图像。 我将图像保存到:

func imagePickerController(_ picker: UIImagePickerController,   didFinishPickingMediaWithInfo info: [String : Any])
{
    let image = info[UIImagePickerControllerOriginalImage] as! UIImage

    // this works with an UIimageView.image but I can't get it to work with the button

    ???.image = image

我相信这样做的方法就是说; button.ImageView.image = image 而这只能通过创建一个名为 UIButton 的变量来完成!?? 然后我可以设置

button.ImageView.image = image

不然进不了方法ImageView.image

但问题是 chooseImage 是我用于接收图像的同一个按钮...所以我可以同时制作一个@IBOutlet weak var button: UIButton!和@IBAction 在同一个按钮上?? 好吧,我尝试并创建了一个

@IBOutlet weak var button: UIButton!

@IBAction func chooseImage(_ sender: Any) {

button.imageView.image = image
}

但什么也没发生这听起来可能令人困惑,但有两个问题。可以这样做吗?如果是,为什么在执行

时没有显示图片
 button.imageView.image = image?

如果不是,请告诉我我做错了什么:-)

谢谢!

试试这个

button.setImage(image, for: .normal) // Swift 3
    someButton.setImage(imagenew, for: .normal)

UIButton 有setimage 方法。您还可以将图像设置为背景图像。有一种方法叫做 setbackgroundImage.

使用setImage() 方法设置按钮的前景图像。但是,如果你的按钮都是蓝色的,那是因为有一个名为“Rendering Mode”的图像功能你应该知道,请参考Template Images了解更多信息:

button.setImage(image.withRenderingMode(.alwaysOriginal), for: .normal)