89 votes

Impossible de redimensionner UIView dans IB

C'est probablement quelque chose de simple, mais je n'arrive pas à comprendre pourquoi je ne peux pas redimensionner une UIView dans un xib dans Interface Builder.

J'ai créé une nouvelle vue XIB dans xcode et dans l'inspecteur de taille, la largeur et la hauteur sont désactivées et grisées à 320 par 460. C'est étrange car je peux modifier la taille des deux autres vues (associées aux deux autres éléments de la barre d'onglets).

Je ne sais pas si cela a quelque chose à voir mais j'ai récemment mis à jour le sdk à 3.

Merci !

1voto

cramhead Points 579

C'est drôle, j'ai un problème similaire. J'ai supprimé toutes les vues du fichier xib et ajouté à nouveau une vue. J'ai défini la barre d'état comme étant "non spécifiée" afin que la barre d'état ne soit pas prise en compte. La vue, lorsqu'elle est ajoutée, est créée avec x=0, y=0, w=320 h=460 au lieu de (0,0,320,480) comme je l'aurais souhaité. Après avoir changé la hauteur à 480 et l'avoir connecté au propriétaire du fichier et changé la couleur pour le rendre distinctif par rapport au fond. Je me suis aperçu qu'il y avait une bande blanche entre le haut de l'écran et la vue. J'ai complété mon code avec :

#define RECTLOG(rect)    (NSLog(@""  #rect @" x:%f y:%f w:%f h:%f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height ));

dans viewDidLoad

\- (void)viewDidLoad {
    \[super viewDidLoad\];
    RECTLOG(self.view.frame);
}

Il s'avère que la vue telle qu'elle est chargée depuis IB est en fait (0, 20, 320, 480). Pour contourner le problème, j'ai réinitialisé le cadre de la vue avec self.view.frame = CGRectMake(0, 0, 320, 480) ;

J'utilise IB 3.2.5.

J'aimerais connaître un petit remède pour celui-ci.

3 votes

Pour info, vous pouvez utiliser NSStringFromCGRect(rect) pour obtenir une chaîne imprimable représentant un CGRect.

0 votes

C'était un excellent FYI, je l'ai vérifié, et vous pouvez effectivement obtenir une valeur de chaîne de caractères à partir d'un CGPoint et CGSize aussi ! très cook, merci.

1voto

PowerAktar Points 575

J'ai remarqué que l'UIView créée automatiquement lors de la création du fichier xib ne peut pas être redimensionnée à partir du panneau de dimensionnement ou des poignées de bord.

Tout ce que j'ai fait, c'est d'ajouter une autre UIView et de faire glisser tout ce qui se trouvait dans mon ancienne UIView vers la nouvelle, puis de supprimer l'ancienne.

Cela a résolu le problème pour moi mais oui, je pense qu'il y a un problème sous-jacent avec le constructeur de l'interface à résoudre pour Apple (quelqu'un me corrige si je me trompe).

J'utilise le constructeur d'interface intégré de XCode 4.

0voto

jeet.chanchawat Points 1261

Je l'ai réglé d'une manière différente...

ouvrez votre xib avec votre éditeur de texte préféré et modifiez cette ligne

        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CompassViewController">

CompassViewController est le nom de la classe avec laquelle vous essayez de lier votre nib/xib.

Il suffit de modifier votre nom de classe avec le nom de classe correct et vous avez terminé ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X