Utilisation d'UIImageView pour afficher une image web ?
Bonjour,
Voilà j'ai besoin d'afficher quelques images différentes que je vais récupérer sur le net et qu'il me faut afficher chacune dans une petite fenêtre dans mon appli iPhone. D'après ce que j'ai compris il faut utiliser les boutons UIImageView qui sont le plus adapté mais que faire ensuite ? J'ai lu quelques tutoriaux mais j'ai du mal à voir comment se fait le lien entre le bouton dans le layout dans Interface Builder et le prog dans XCode :-( Et ensuite comment attribuer mon image web à chacun des boutons !
Tous vos liens, conseils, etc sont les bienvenus, merci bien
Vince
Voilà j'ai besoin d'afficher quelques images différentes que je vais récupérer sur le net et qu'il me faut afficher chacune dans une petite fenêtre dans mon appli iPhone. D'après ce que j'ai compris il faut utiliser les boutons UIImageView qui sont le plus adapté mais que faire ensuite ? J'ai lu quelques tutoriaux mais j'ai du mal à voir comment se fait le lien entre le bouton dans le layout dans Interface Builder et le prog dans XCode :-( Et ensuite comment attribuer mon image web à chacun des boutons !
Tous vos liens, conseils, etc sont les bienvenus, merci bien
Vince
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il y a le même type de référence dans la doc pour les méthodes que l'on pourrait utiliser
La doc s'atteint via le menu Help >Documentation et dans le pael de gauche prendre évidemment iPhone.
rq : UIImageView n'est pas un bouton mais un container (il n'hérite pas de UIControl)
MainViewController.h:
@interface MainViewController : UIViewController {
UIWebView *webView;
}
MainViewController.m:
- (void)viewDidLoad {
webView mainView] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.skivr.com/panos/2008-12-08-7-laux-pouta-depart/vignette.jpg"];
[super viewDidLoad];
}
Mais à chaque fois que je compile j'obtiens le message d'erreur:
MainViewController.m:37: warning: 'UIWebView' may not respond to '-mainView'
MainViewController.m:37: warning: (Messages without a matching method signature
et malgré des recherches nombreuses sur google j'arrive pas à me sortir de cet ornière :-( Une idée ?
Merci de vos lumières
Vince
Heu je crois que tu confonds un peu les concepts et les termes.
Cela fait plusieurs fois que tu parles de "boutons" pour des vues, que ce soit UIImageView ou UIWebView ce sont des vues et pas des boutons
C'est bien différent, un bouton ayant une (ou plusieurs) action(s) associée(s) et étant fait pour être cliqué, une vue étant faite pour afficher du contenu (genre une image).
Quand tu vas cliquer sur ton bouton, cela va afficher une image dans ta vue. "Afficher une image du web dans un bouton sur l'iPhone" ou "un bouton de type UIWebView" ça ne veut rien dire, ce sont des termes incohérents :P
Du coup webView est comme tu l'as déclaré une UIWebView, qui répond directement à "loadRequest", mais qui ne répond pas à "mainView"
De plus certes tu peux passer par une WebView pour ton affichage, mais c'est pas utile, une UIImageView suffit. Que ton image soit en local ou vienne du net, cela ne change rien, tu peux initialiser ton image à l'aide d'une URL :
Merci pour le coup de pouce par contre y'a un truc que je capte pas du tout c'est comment tu fais le lien entre le IBOutlet UIImageView et la vue UIImageView que j'ai créé dans Interface Builder :)beta:
Merci
Vincèn
Pour les IBOutlet, c'est un concept qu'il faut que tu comprennes correctement car ce sont les bases pour pouvoir relier ton code das Xcode et ton interface ou plus exactement les objets dans ton NIB. Une fois que tu as compris le principe ça va tout seul mais au début ça saute pas forcément aux yeux.
En fait un IBOutlet, comme je l'expliquais dans un autre post, ne fait rendre visible une variable d'instance dans IB. Ca permet quand le fichier NIB est chargé par ton programme qu'il connecte/associe automatiquement la variable d'instance à l'objet auquel l'IBOutlet a été connecté dans ton NIB dans IB.
Pour connecter un IBOutlet vers ta UIImageView, tu vas dans IB, et tu fais un Ctrl-clic sur l'objet qui contient ton IBOutlet à connecter, et dans la foulée tu fais glisser vers l'objet à connecter. Donc si tu reprends le code d'exemple que je t'ai donné, tu fais un ctrl-clic sur ton AppController et sans relâcher tu fais glisser ta souris vers ton UIImageView. Il va alors t'afficher la liste des IBOutlets de AppController que tu peux connecter à cette UIImageView (en l'occurence il n'y en aura qu'un), tu choisis donc l'outlet "imageView" et tu relâches.
Une autre méthode consiste à faire un ctrl-clic sur AppController et relâcher le bouton de la souris, pour afficher le panel listant toutes les connexions possibles depuis et vers ton AppController. Dans ce panel tu retrouveras alors ton IBOutlet, avec un petit cercle vide (car pas encore connecté) à sa droite. Et là il suffit de "tirer un lien" (cliquer-glisser) de ce cercle vide en face de "imageView" vers ton UIImageView dans IB pour créer la connexion entre ton IBOutlet et l'objet : ton cercle va alors passé en "rempli" pour indiquer que la connexion a été faite.
Voilà m'sieur
Merci bein Ali pour les infos, désolé de pas avoir répondu plus tôt à cause des fêtes