J'ai créé UIImageView
avec l'aide d'Interface Bulder. Maintenant je veux placer une étiquette à l'intérieur (comme sa sous-vue). Dans le code, je peux taper quelque chose comme : [myUIImageView addSubview:myUILabel];
Mais puis-je le faire avec l'aide de l'IB ? J'ai trouvé la solution pour UIView
mais je ne trouve rien de similaire pour UIImageView
.
Réponses
Trop de publicités?Vous ne pouvez pas ajouter un subview à UIImageView dans le constructeur d'interface pour des raisons connues seulement d'Apple ! Vous avez raison de dire que vous pouvez ajouter une sous-vue de manière programmatique, mais dans ce cas, les frais généraux liés à la définition des masques de redimensionnement automatique et au placement des sous-vues devraient tous être gérés dans le code, ce qui est fastidieux.
Il existe donc une solution de contournement facile. Au lieu de faire glisser une instance de UIImageView dans la plume, faites simplement glisser un UIView et changez sa classe en UIImageView à partir de UIView (option cmd+4 de l'inspecteur). La seule différence que vous trouverez dans la plume pour l'instance imageView par défaut et votre nouvelle instance de sous-classe UIImageView est que vous ne pouvez pas définir l'image de votre nouvelle imageView à partir de la plume (option cmd+1). Ainsi, dans le -viewDidLoad
de son viewController approprié, définissez l'image sur cette sortie de UIImageView.
En procédant ainsi, vous êtes libre d'ajouter des sous-vues à vos instances "maintenant UIImageView" dans le constructeur d'interface, ce qui est beaucoup plus facile.
J'espère que cela vous aidera. . .
Je voudrais ajouter une réponse.
Bien que cela craigne que vous ne puissiez pas ajouter une sous-vue à UIImageView
vous pouvez obtenir le même effet en incorporant UIView
avec un fond transparent (couleur claire).
Ensuite, mettez le UIImageview
Avant cela.
Ainsi, le UIView
a les sous-vues et la UIImageview
est l'arrière-plan de la UIView
.
Je pense que c'est l'intention d'apple.
Voici une capture d'écran :
Voici le résultat :
N'oubliez pas de définir l'arrière-plan comme une couleur claire.
Maintenant, si quelqu'un pouvait m'indiquer un tutoriel sur la façon de faire cela, ce serait génial. J'ai passé des heures à le faire à la manière de la réponse cochée. La réponse cochée est une bonne réponse mais très peu intuitive car vous ne pouvez pas voir clairement votre image de fond pendant que vous travaillez. Je pense que la mienne est la bonne façon de faire.
Utilisez ce code :
UIImage *image = [UIImage imageNamed:@"background.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.view insertSubview:imageView atIndex:0];
(remplacer background.png avec image ) (remplacer atIndex:0 avec l'endroit de l'index Root où vous voulez insérer l'image et c'est parti.