J'ai donc une vue d'image intitulée cashOrCredit et j'essaie de la définir par programme, mais je ne suis pas en mesure de le faire.
D'abord je règle l'image comme ça
cell.cashOrCredit.image = UIImage(named: "cash1.png")
et je reçois une erreur en disant qu'un séparateur de "," est nécessaire.
Puis j'ai essayé de cette façon
var cashImage: UIImage?
cashImage = "cash1.png"
cell.cashOrCredit.image = cashImage
Mais je reçois une erreur THREAD 1 EXC BAD INSTRUCTION. Je n'arrive pas à comprendre ce qui ne va pas?
Voici l'erreur
Mise à jour pour Swift 3:
utilisez ci-dessous du code simple pour définir l’image sur UIImageView;
class YourViewControllerName: UIViewController {
var mYourImageViewOutlet: UIImageView?
func addImageToUIImageView{
var yourImage: UIImage = UIImage(named: "Birthday_logo")!
mYourImageViewOutlet.image = yourImage
} // call this function where you want to set image.
}
Remarque: le type d'image "Birthday_logo" doit être présent dans vos actifs.xcassets de votre projet . J'ai joint la capture d'écran si vous souhaitez obtenir de l'aide, veuillez la renvoyer.
**** // utilisé partout où vous souhaitez ajouter une image à UIImageView. [Ici, j'ai utilisé une fonction et dans cette fonction, j'écris un code pour définir l'image sur UIImageView] ****
Essaye ça:
cell.cashOrCredit.image = UIImage(named: "cash1")
et vérifiez l'image "cash1.png" est disponible dans Assets.xcassets ou non.
Si vous avez une solution, alors donnez votre vote jusqu'à ma réponse.
Prise de sortie de ImageView
@IBOutlet weak var imgProfile: UIImageView!
Parcourez le code suivant qui vous aidera à choisir une image ou à capturer une image à partir de l'appareil photo.
func choosePicker() {
let alertController = UIAlertController(title: "Select Option", message: nil, preferredStyle: (IS_IPAD ? UIAlertControllerStyle.alert : UIAlertControllerStyle.actionSheet))
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel, handler: { action -> Void in
})
let gallery = UIAlertAction(title: "From Gallery", style: UIAlertActionStyle.default
, handler: { action -> Void in
self.openPicker(isCamera: false)
})
let camera = UIAlertAction(title: "Take Photo", style: UIAlertActionStyle.default
, handler: { action -> Void in
self.openPicker(isCamera: true)
})
alertController.addAction(gallery)
alertController.addAction(camera)
alertController.addAction(cancelAction)
self.present(alertController, animated: true, completion: nil)
}
func openPicker(isCamera : Bool) {
let picker:UIImagePickerController?=UIImagePickerController()
if isCamera {
picker!.sourceType = UIImagePickerControllerSourceType.camera
} else {
picker!.sourceType = UIImagePickerControllerSourceType.photoLibrary
picker!.allowsEditing = true
}
picker?.delegate = self
if UIDevice.current.userInterfaceIdiom == .phone {
self.present(picker!, animated: true, completion: nil)
}
else {
picker!.modalPresentationStyle = .popover
present(picker!, animated: true, completion: nil)//4
picker!.popoverPresentationController?.sourceView = imgProfile
picker!.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.up
}
}
// MARK: - UIImagePickerControllerDelegate Methods
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
self.imgProfile.image = image
}
picker.dismiss(animated: true, completion: nil);
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
dismiss(animated: true, completion: nil)
}
Appelez ChoosePicker Méthode où vous voulez appeler.
Vérifiez si cashOrCredit est uiimageview.
Deuxièmement,
cashImage = UIImage (nommé: "cash1.png")
Si cela ne fonctionne pas, essayez
cellule?. cashOrCredit.image
vérifier si la cellule est nulle?
Dans le contexte du code Swift, EXC_BAD_INSTRUCTION signifie généralement que vous avez touché un piège du compilateur, c'est-à-dire une instruction non définie insérée dans le code par le compilateur en raison d'un bogue détecté à l'exécution. La cause la plus commune de ceux-ci sont:
échec de la décompression d’une option - Il peut s’agir d’une décompression forcée (!) ou implicite (l’accès à une option non implicite implicitement nulle).
tableau hors limites
une distribution forcée ayant échoué (comme!), soit parce que la valeur était une valeur facultative nil, soit parce que la valeur était d'un type incorrect
Supprimer ".png":
cell.cashOrCredit.image = UIImage(named: "cash1")
Vous pouvez également tout définir par programme:
let cellImage = UIImageView(frame: CGRect(x: X, y: Y, width: WIDTH, height: HEIGHT))
cellImage.image = UIImage(named: "cash1")
cell.addSubview(cellImage)