Le redimensionnement d'un UILabel pour accueillir les encarts

Je suis en train de construire un écran permettant de scanner des codes-barres, et j'ai besoin de mettre un écran translucide derrière certains UILabels pour améliorer la visibilité à l'encontre de fond clair.

Voici ce que l'écran ressemble à ça:

Le redimensionnement d'un UILabel pour accueillir les encarts

Je suis réglage de la couleur d'arrière-plan sur la UILabel pour obtenir les boîtes translucides. J'ai également créé un custom UILabel sous-classe permettez-moi de mettre du rembourrage entre le bord de la UILabel et le texte à l'aide cette approche.

Comme vous pouvez le voir dans l'écran ci-dessus, le UILabel n'est pas redimensionnée correctement pour prendre le rembourrage en compte. Le "padding" déplace simplement sur le texte sans modifier la largeur de l'étiquette, provoquant le texte à tronquer.

À la fois de ces étiquettes contiennent des textes de longueurs arbitraires, et j'ai vraiment besoin de la UILabel de redimensionner dynamiquement.

Ce UILabel méthode puis-je remplacer pour augmenter la largeur de l'étiquette et le facteur dans le rembourrage?

  • Comment cela est-il chargé? si vous êtes à l'aide d'un storyboard, avez-vous charge de cette étiquette à l'aide? et si vous l'avez fait, avez-vous d'ajouter des contraintes à ce label et de définir la taille d'un nombre constant?
  • Les bonnes questions. Ce point de vue est construit entièrement en code. Je suis en utilisant des contraintes de disposer de l'écran, et les seules contraintes sur les étiquettes de définir la position sur l'écran, pas la taille de l'étiquette.
  • ok, eh bien, il est probablement juste un problème avec le texte étant trop long. Je dirais juste que l'étiquette plus large entièrement, ou encore l'adaptation de la largeur de l'étiquette en fonction de combien de temps le texte est en elle
  • L'adaptation de la largeur de l'étiquette en fonction de la longueur du texte est exactement ce que je suis après, mais le calcul que, en dehors de la UILabel est stupide. Je suis l'espoir d'apprendre ce UILabel méthode je peux remplacer pour recalculer la taille de l'étiquette à intégrer le rembourrage.
  • check this out: stackoverflow.com/questions/13237353/...
  • Merci, mais sizeToFit ne prend pas en compte la marge. J'ai essayé primordial sizeToFit et sizeThatFits pour augmenter la largeur de la rect, mais il ne semble pas avoir d'effet.
  • Essayez de remplacer -textRectForBounds:limitedToNumberOfLines: trop
  • Double Possible de UILabel marge de texte
  • Extension pour UILabel Meilleure solution

InformationsquelleAutor Josh Earl | 2014-01-16