Faire de la police de grandir ensemble avec UILabel (redimensionnée par la Mise en page Automatique) - comment faire dans Interface Builder?

Dans une simple application iPhone - je afficher une lettre de tuiles (personnalisé UIView avec une image et 2 étiquettes) par le code suivant dans viewDidLoad:

Faire de la police de grandir ensemble avec UILabel (redimensionnée par la Mise en page Automatique) - comment faire dans Interface Builder?

DraggedTile *tile = [[[NSBundle mainBundle] loadNibNamed:@"DraggedTile"
                                                   owner:self
                                                 options:nil] firstObject];
tile.frame = CGRectMake(10 + arc4random_uniform(100),
                        10 + arc4random_uniform(100),
                        kWidth,
                        kHeight);
[self.view addSubview:tile];

Cela fonctionne bien, mais je voudrais faire la lettre de la tuile de croître - quand j'offre une plus grande largeur et la hauteur des paramètres à la CGRectMake.

Donc dans Xcode 5.1 Interface Builder, j'ouvre le DraggedTile.xib et activez l'option "Mise en page Automatique".

Puis pour le image et letter je ajouter des contraintes à la gauche, haut, droite, bas bords de la mère.

Pour la letter étiquette j'ai aussi mis des "Lignes" à 0 et du "Contenu" de la Résistance à la Compression Priorité" à 1000 (ici plein écran 1 et plein écran 2):

Faire de la police de grandir ensemble avec UILabel (redimensionnée par la Mise en page Automatique) - comment faire dans Interface Builder?

Faire de la police de grandir ensemble avec UILabel (redimensionnée par la Mise en page Automatique) - comment faire dans Interface Builder?

Puis j'ai modifier le code pour utiliser une plus grande largeur et la hauteur:

tile.frame = CGRectMake(10 + arc4random_uniform(100),
                        10 + arc4random_uniform(100),
                        2 * kWidth,
                        2 * kHeight);

Voici le résultat:

Faire de la police de grandir ensemble avec UILabel (redimensionnée par la Mise en page Automatique) - comment faire dans Interface Builder?

À la fois le fond image et la letter étiquette semble avoir augmenté comme prévu.

Cependant la taille de la police de l'étiquette n'a pas grandi.

J'ai cherché partout et je pense que j'ai besoin de quelque chose comme tile.letter.adjustsFontSizeToFitWidth = YES. Mais en même temps, je ne peux pas l'utiliser avec "Auto" Mise en page pour être sur...

Donc ma question est si il n'y a aucune option dans le "Interface Builder" disponible pour faire de la taille de la police augmenter?

Mise à JOUR:

J'ai essayé ismailgulek la suggestion de définir la taille de la police à 200 dans Interface Builder et dans le code tile.letter.adjustsFontSizeToFitWidth = YES et il semble prometteur (ici plein écran):

Faire de la police de grandir ensemble avec UILabel (redimensionnée par la Mise en page Automatique) - comment faire dans Interface Builder?

mais j'ai maintenant le problème que j'ai mis 40px comme le letter.bottom contrainte dans Interface Builder. Mais que faire si j'ai besoin d'un plus grand carreau cadre? Est-il possible d'utiliser de pourcentage au lieu de absolue de la valeur du pixel dans le cadre de cette contrainte?

Et une autre question est si il est possible de définir la adjustsFontSizeToFitWidth quelque part dans Interface Builder ou dois-je utiliser le code source pour ça? J'ai essayé d'ajouter une touche à la "Défini par l'Utilisateur Runtime Attributs" - mais alors, l'application se bloque lors de l'exécution:

Faire de la police de grandir ensemble avec UILabel (redimensionnée par la Mise en page Automatique) - comment faire dans Interface Builder?

  • Vous êtes censé définir les contraintes de l'autre étiquette.
  • mais votre autre label semble égaré,voulez-vous de cette façon?
  • Je vais corriger la position de l'autre étiquette plus tard. Maintenant, je me demande à propos de la taille de la police.
  • Quelles sont les dimensions que vous observez? Si vous pixelliser le calque de l'étiquette grâce à une grande échelle, vous pouvez obtenir cet effet très facilement avec peu de travail.
  • En fait j'ai résolu mon problème en attendant, par le redimensionnement de toutes les ressources graphiques. Mais merci pour les conseils.