Ancrer un UILabel dans une UIImageView sous contrainte AutoLayout

OldNickOldNick Membre
janvier 2016 modifié dans API UIKit #1

Hello à  tous,


Je cherche à  " ancrer " un UILabel dans une UIImageView elle-même positionnée et dimensionner via AutoLayout.

Mon UIIMageView se positionne et redimensionne bien suivant les différents devices grace, notamment, à  la contrainte Aspect Ratio ... mais je n'arrive pas à  correctement paramétrer l'AutoLayout de mon UILabel pour que la position de celui-ci s'ajuste automatiquement à  la position et au dimensionnement de mon UIImageView ...

J'ai essayé la notion de Multiplier dans les paramètres de contraintes ...mais le référentiel étant celui de la super view et non celui de mon UIImageView, mon UILabel se balade un peu n'importe comment ...en tout cas pas de manière constante par rapport à  la position de mon UIImageView et pas de manière proportionnelle par rapport à  la dimension de mon UIImageView.

Any ideas ?

J'en profite pour vous souhaiter le meilleur du meilleur pour 2016.

OldNick

Réponses

  • Ton UILabel est " au-dessus " de ton UIImageView? Si c'est le cas, tu pourrais mettre les 2 dans une UIView potentiellement.


    Quelles contraintes souhaites-tu utiliser exactement ? Enfin, quelles sont les règles de ton " ancrage " ?


  • --> Larme , merci pour ta réponse.


    Mon UILabel est bien "au dessus" de mon UIImageView (mon UIImageView contient le dessin d'une caisse, et mes UILabel les dimensions de la caisse L x l x P). Pour les contraintes de position, par exemple pour L, sa position est au 2/3 de la hauteur de UIImageView et au tiers de sa largeur ... c'est d'ailleurs pour ça que j'ai investigué la notion de Multiplier dans les contraintes AutoLayout). Si je comprends bien ce que tu me proposes, je positionne une UIView dans ma super view ...puis dans cette UIView, je positionne mon UIImageView et mes UILabel par rapport aux bords de mon UIView ...c'est ça ?


  • Oui, c'est potentiellement ce que je suggère, surtout si c'est un élément qui peut être réutilisé à  droite à  gauche :


    ZZImageWithPrintedDimension qui hérite de UIView.


    Et avec une méthode du style -(void)fillWithImage:(UIImage *)image withPrintedWidth:(float)width printedHeight:(float)height andPrintedDepth:(float)depth.


    Cette méthode se chargera des conversions "readable" si besoin des valeurs.


    Notamment si tu as besoin d'afficher des cm/m/mm en fonction, etc.


  • Merci Larme pour ces précieux renseignements !


Connectez-vous ou Inscrivez-vous pour répondre.