Superposer deux images dans un UIImageView

MAGEMAGE Membre
10:11 modifié dans API UIKit #1
Je pense que je mélange mes classes (UIView / UIImageView / UIImage), mais je vous explique.

J'ai plusieurs UIImageView dans un xib, dirigées par un UIViewController.
J'aimerai affecter deux images sur une UIImageView : une pour le fond, une pour l'image principale.

J'ai essayé ça pour ajouter une deuxième image:
[monUIImageView.image addSubview:maNouvelleUIImageView.image];

mais évidemment, il ne veut pas puisque ce n'est pas une UIView.

Une solution pourrait être de transformer mes éléments UIImageView en UIView, où même en UIBouton. Mais comme ils n'affichent que des images, ça paraà®t lourd.

N'y a-t-il pas une méthode simple ?

Réponses

  • juin 2009 modifié #2
    Soit tu dessines les 2 images dans une UIView perso..
    soit tu fais simplement :
    [monUIImageView addSubview:maNouvelleUIImageView];

    UIImage ne descend pas de UIView, alors que UIImageView si.

    Ceci-dit, à  ta place je reverrai le système.. Plutôt que de faires des UIImageView dans un xib dirigé par UIViewController, je remplacerai ces foutues UIImageView par des UIView qui contiendront chacune 2 UIImageView (vu que c'est ce que tu veux  faire). ça fait déjà  plus propre niveau hièrarchie.
  • MAGEMAGE Membre
    10:11 modifié #3
    Merci pour ta réponse.

    Je pensais justement que j'allais alourdir l'affichage avec plein de vues.
    Je pense que je vais alors suivre ton conseil et mettre des UIView que je gère plus facilement.
  • Philippe49Philippe49 Membre
    juin 2009 modifié #4
    dans 1246094370:

    J'ai plusieurs UIImageView dans un xib, dirigées par un UIViewController.
    J'aimerai affecter deux images sur une UIImageView : une pour le fond, une pour l'image principale.

    Une UIImageView est une UIView ==> addSubview fonctionne

    Le sujet de addSubview ? une UIView, pour toi une UIImageView
    Le complément d'objet direct de addSubview ? une UIView, ici aussi une UIImageVIew


    dans 1246094370:

    J'ai essayé ça pour ajouter une deuxième image:
    [monUIImageView.image addSubview:maNouvelleUIImageView.image];
    



    Regarde le sujet monUIImageView.image, ce n'est pas une UIView
    Regarde le COD : maNouvelleUIImageView.image , ce n'est pas une UIView non plus.

    D'où la proposition d'EagleLouk.




  • Philippe49Philippe49 Membre
    juin 2009 modifié #5
    Ton idée de mettre une UIImageView en subview d'une autre ne me choque pas du tout, puisque visuellement elles s'emboà®tent. Par ailleurs, qu'est-ce qui t'empêche de les mettre l'une au-dessus de l'autre sans faire une relation de subview ? Les subviews sont dessinées dans l'ordre de leur rangement dans la NSArray des subviews de la vue mère. Tu peux même installer tout cela dans IB.
  • MAGEMAGE Membre
    10:11 modifié #7
    J'ai mal posé ma question, désolé  :o

    Mes soucis de subviews, viennent du fait que l'image de premier plan est tirée d'un NSDictionnay.
    NSDictionary* infosFiche = [tableauFiches objectAtIndex: idx];<br />maUIImageView.image = [UIImage imageNamed: [infosFiche objectForKey:@&quot;imageName&quot;]];
    


    Ensuite j'affiche mon image sur une des UIImageView en fonction de l'action :
    if ([touch view] == monUIImageView) {<br />monUIImageView.image = maUIImageView.image;}
    

    Tant que je n'affiche qu'une image tout va bien (sauf que le fond est transparent et que je veux y palcer une image)

    Je n'arrive pas à  ajouter un élément  genre:
    if ([touch view] == monUIImageView) {<br />[monUIImageView addSubview:fond];<br />monUIImageView.image = maUIImageView.image;}
    

    fond étant une UIImageView.

    Soit Il m'avertit de la confusion entre UIImage et UIImageView, soit il plante.

    ps: le lien sur la doc me sera effectivement très utile une fois que je l'aurai comprise. J'ai effectivement des concepts de base à  mieux assimiler. Mais j'abandonne pas ;) et le fait de pratiquer avec votre soutien, m'aide aussi dans ce sens.
  • 10:11 modifié #8
    C'est quoi la différence entre monUIImageView et maUIImageView?

    C'est un peu trop court comme code là   :(
    Et si tu peux expliquer exactement ce que tu cherches à  faire, et surtout le contexte :D
  • MAGEMAGE Membre
    juin 2009 modifié #9
    Je ne sais pas si c'est plus clair avec un croquis ?
    Sinon, je mets volontiers plus de code, c'était pour faire court.

    Donc, une fois cliqué sur (1) il va chercher l'image à  afficher (2) sur (3)&(4).
    Pas de soucis pour remplacer l'image de (1 en rouge) par l'image du plist (en bleu en 3&4), mais impossible d'y mettre une autre image en fond.

    (3) et (4) sont dans des UIView différentes, mais ça ne change pas le problème.
  • MAGEMAGE Membre
    10:11 modifié #10
    Les réponses éclaires sur ce forum m'ont donné de mauvaises habitudes  :P

    C'est peut-être que ma question n'est pas assez claire ? Bon en même temps, c'est pas indispensable pour continuer. Mais j'aime bien comprendre.
Connectez-vous ou Inscrivez-vous pour répondre.