Récupération dynamique de UILabel en fonction du texte renvoyé Valeur différente pour iOS 7.0 et iOS 6.1
J'utilise cette méthode pour obtenir la hauteur de la UILabel Dynamiquement:
+(CGSize) GetSizeOfLabelForGivenText:(UILabel*)label Font:(UIFont*)fontForLabel Size: (CGSize)LabelSize{
label.numberOfLines = 0;
CGSize labelSize = [label.text sizeWithFont:fontForLabel constrainedToSize:LabelSize lineBreakMode:NSLineBreakByCharWrapping];
return (labelSize);
}
Avec cette solution je suis arriver à la taille exacte de UILabel si mon code est en cours d'exécution sur sous iOS 8
mais si je lance mon application sur iOS7 puis il se retourne une valeur différente.
source d'informationauteur Sumeet Mourya
Vous devez définir dynamiquement l'image, comme ci-dessous:
Voici une solution totale pour la largeur et la hauteur. Mettez-les dans votre AppDelegate:
ensuite utiliser cette fonction, définissez le texte de l'étiquette:
et appel:
Remarque: l'étiquette de numberOfLines doit être mis à 0.
Espérons que cela aide.
si vous utilisez des polices système, ils ont changé dans iOS 7, alors ils seraient différentes tailles.
Aussi,
sizeWithFont:constrainedToSize:lineBreakMode:
est obsolète dans iOS 7. Utilisation sizeWithAttributes: à la place (si vous êtes sur iOS 7)Accepté réponse ne me satisfont pas, donc j'ai dû creuser cette question dans mon code:
Accepté la réponse est trop long. Vous pouvez utiliser les éléments suivants:
J'ai tout le temps l'utilisation
sizeThatFits:
Vous pouvez essayer ce
Quelle que soit la hauteur que je reçois par l'intermédiaire de ce code(méthode que j'ai écrite à cette question ci-dessus).Son fournir la hauteur en valeur float (86.4) , une fois que l'on et d'essayer de régler la hauteur de UILabel, mais nous avons besoin de récupérer la valeur de la hauteur avec ceil (87) au lieu de la valeur car il est (86.4). J'ai résolu mon problème avec cette approche. Et merci pour vos réponses.
C'est ce que j'ai trouvé, enfin, et espérons que cela vous aidera. J'ai vérifié la version iOS Apple lui-même en train de faire dans le iOS 7 de l'INTERFACE utilisateur Guide de Transitionce qui implique la vérification de la Fondation de la version de Cadre et utilisé #pragma pour supprimer le Obsolète: l'avertissement de la part d'iOS 7 ou version ultérieure avec "- (CGSize)sizeWithFont:(UIFont *)de la police constrainedToSize:(CGSize)taille".
Super simple. Juste obtenir la zone de texte, de le diviser par la largeur, puis arrondi au plus proche de la hauteur qui s'adapte à votre police.
Beaucoup une solution prête à l'emploi. - Je l'utiliser dans une classe d'aide beaucoup, surtout pour dynamiquement la taille d'UITableViewCells.
Espère que cela aide les autres à l'avenir!
La méthode
sizeWithFont:constrainedToSize:lineBreakMode:
est obsolète dans iOS7.Vous devez utiliser
sizeWithAttributes:
à la place.Exemple:
J'ai une situation où j'ai besoin de régler la hauteur de l'étiquette selon le texte. J'utilise Xcode 7.1 et mon projet de déploiement de la cible est de 7.0 mais je l'ai testé sur iOS 9 simulateur de et solution suivante fonctionne pour moi. Voici la solution:
D'abord de vous créer un dictionnaire comme ceci:
maintenant, nous allons calculer la hauteur et la largeur de notre texte, et de transmettre le nouveau dictionnaire créé.
Ensuite, nous allons définir le cadre de notre LABEL:
C'EST COMMENT J'AI RÉUSSI À METTRE L'IMAGE DE MON ÉTIQUETTE EN FONCTION DU TEXTE.
Cette méthode est utilisé et testé par moi à partir de iOS 7 à iOS 11.4
De sorte que vous pouvez utiliser comme ceci:
Je suis en utilisant ce code dans mon projet et c'est un travail bien maintenant :-
Fondamentalement, vous devez définir dynamiquement cadre.Comme ci-dessous:
ce code est pour le déplacement de quatre étiquettes dans le sens horaire avec le bouton du robinet, par l'aide de la fonction pour le bouton: