Réponses:
Si vous avez déjà un IBOutlet vers une UIImageView, il vous suffit de saisir une image et d'appeler setImage sur le récepteur (UIImageView). Deux exemples de capture d'une image sont ci-dessous. Un sur le Web et un que vous ajoutez à votre dossier Resources dans Xcode.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
ou
UIImage *image = [UIImage imageNamed: @"cell.png"];
Une fois que vous avez une image, vous pouvez définir UIImageView:
[imageView setImage:image];
La ligne ci-dessus suppose que imageView est votre IBOutlet.
C'est tout! Si vous voulez avoir de la fantaisie, vous pouvez ajouter l'image à un UIView, puis ajouter des transitions.
Gestion de la mémoire PS non incluse.
Notez que le fichier NIB ne relie pas tous les IBOutlets tant que la vue n'a pas été ajoutée à la scène. Si vous câblez les choses manuellement (ce que vous pourriez faire si les choses sont dans des NIB séparés), il est important de garder à l'esprit.
Donc, si mon contrôleur de vue de test a un "imageView" câblé par une pointe, cela ne fonctionnera probablement pas:
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
[self.view addSubview:testCardViewController.view];
Mais cela va:
[self.view addSubview:testCardViewController.view];
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
imageView.image = [UIImage imageNamed:@"myImage.png"];
Dans le but de personnes qui recherchent cela sur Google pour essayer de résoudre leur problème, n'oubliez pas de déclarer correctement la propriété dans votre fichier d'en-tête et de synthétiser l'UIImageView dans votre fichier d'implémentation ... Il sera difficile de définir l'image par programme sans méthodes getter et setter.
#import <UIKit/UIKit.h>
@interface YOURCONTROLLERNAME : UIViewController {
IBOutlet UIImageView *imageToDisplay;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;
@end
puis dans votre .m:
@implementation YOURCONTROLLERNAME
@synthesize imageToDisplay;
//etc, rest of code goes here
À partir de là, vous devriez utiliser quelque chose comme ce qui suit pour définir votre image.
[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
Exemple dans Swift :
import UIKit
class ViewController: UIViewController {
@IBOutlet var myUIImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func myAction(sender: UIButton) {
let newImg: UIImage? = UIImage(named: "profile-picture-name")
self.myUIImageView.image = newImg
}
@IBAction func myAction2(sender: UIButton) {
self.myUIImageView.image = nil
self.myUIImageView.image = UIImage(data: NSData(contentsOfURL: NSURL(string: "http://url/image.png")!)!)
}
}
En suivant les conseils de Jordan (qui devraient fonctionner en fait), essayez de définir UIImageView pour être visible:
[imageView setHidden: NO];
et aussi - n'oubliez pas de le joindre à l'UIView principal:
[mainView addSubview: imageView];
et de mettre au premier plan:
[mainView bringSubviewToFront: imageView];
J'espère que la combinaison de toutes ces étapes vous aidera à résoudre le mystère.
Mon problème était que j'ai essayé de changer l'image dans un autre fil. J'ai aimé ceci:
- (void)changeImage {
backgroundImage.image = [UIImage imageNamed:@"img.png"];
}
Appeler avec:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
dispatch_async(dispatch_get_main_queue(), ^{backgroundImage.image = [UIImage imageNamed:@"img.png"];})
Si vous souhaitez définir l'image sur par UIImageView
programme, n'oubliez pas d'ajouter en UIImageView
tant que sous- vue à la vue principale.
Et n'oubliez pas non plus de définir ImageView Frame .
voici le code
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"myImage.png"];
[self.view addSubview:myImage];
N'oubliez pas d'appeler sizeToFit()
après avoir changé d'image si vous utilisez ensuite la taille de UIImageView pour définir UIScrollView contentSize et / ou calculer l'échelle de zoom
let image = UIImage(named: "testImage")
imageView.image = image
imageView.sizeToFit()
scrollView.contentSize = imageView.bounds.size
myUIImageview.image = UIImage (named:"myImage.png")
UIColor * background = [[UIColor alloc] initWithPatternImage:
[UIImage imageNamed:@"anImage.png"]];
self.view.backgroundColor = background;
[background release];
Cette question avait déjà beaucoup de réponses. Malheureusement, aucun n'a fonctionné pour moi. Donc, par souci de complétude, j'ajoute ce qui m'a aidé:
J'avais plusieurs images avec le même nom - je les ai donc commandées dans des sous-dossiers. Et j'avais le chemin complet vers le fichier image que je voulais montrer. Avec un chemin complet imageNamed:
(comme utilisé dans toutes les solutions ci-dessus) ne fonctionnait pas et était la mauvaise méthode.
Au lieu de cela, j'utilise maintenant imageWithContentsOfFile:
comme ceci:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
Je ne sais pas, si quelqu'un lit aussi loin?
Si c'est le cas et que celui-ci vous a aidé: veuillez voter. ;-)
Pour définir l'image sur votre imageView, utilisez la ligne de code ci-dessous,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];