Search code examples
iosswift3uiimagepickercontrollersdwebimage

Swift 3, SDwebimage - How do you set a button placeholder image on image upload with SDWebImage?


I'm creating the ability for users to upload an image using buttons with the image as the background. What I'm trying to do is set "imgTemp" which was the image the user chose from their phone and set it to the background of the button using sdwebimage. How would you do this with no errors? Im getting "Cannot convert value of type 'UIImage?' to expected argument type 'URL?'" which I understand just don't have a clue how to fix it. Thanks.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]){

let imgTemp = info[UIImagePickerControllerOriginalImage] as? UIImage

cell.image01.sd_setBackgroundImage(with: imgTemp, for: UIControlState.normal, placeholderImage: defaultImg)

}

Solution

  • Since the value contained within the UIImagePickerControllerOriginalImage key is a UIImage object you can directly set it as a background image. You do not need to use a method provided by SDWebImage for the same.

    cell.image01.setBackgroundImage(imgTemp, for: .normal)
    

    SDWebImage is used for asynchronously loading an image from a given URL.