web-dev-qa-db-fra.com

Impossible de redimensionner UIView dans IB

Probablement quelque chose de simple, mais je ne peux pas comprendre pourquoi je ne peux pas redimensionner un 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 changer la taille des deux autres vues (associées aux deux autres barres d'onglets) articles).

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

Merci!

87
Ayrad

Je pense que vous ne pouvez pas modifier la taille tout en simulant des éléments d'interface utilisateur tels que la barre d'état dans Interface Builder. Vous pouvez essayer de désactiver les éléments simulés s'ils sont activés. Je ne sais pas exactement pourquoi c'est ainsi, j'apprécierais donc les commentaires de quiconque sait pourquoi c'est exactement - il doit y avoir une bonne raison.

81
teabot

Pour y parvenir dans XCode 4.6.3/5.0.2, vous devez suivre la capture d'écran ci-dessous:

  1. Sous 'Inspecteur de fichiers' -> décochez Use Auto Layout
  2. Cliquez sur le sélecteur d'attributs et choisissez Freeform pour la taille

Cela est nécessaire lors de la création d'un headerView pour une tableView

enter image description here

75
Houman

La pièce que vous recherchez se trouve dans le premier panneau Inspecteur (Commande-1). Tout en haut, il y a une section intitulée Éléments de l'interface utilisateur simulée. Par défaut, la barre d'état est activée. Vous devez vous assurer que les trois sont définis sur Aucun.

40
Thomas Mon

Comme pour Xcode 4.2, iOS 5.0.1, les mesures simulées par défaut incluent la simulation de l'attribut 'size' de UIViewControllers sur 'Inferred'

Si vous changez cet attribut en "Forme libre", vous pouvez redimensionner l'UIView contenu dans l'UIViewController tout en simulant la barre d'état (ou toute autre simulation d'ailleurs)

26
lol

Accédez simplement à l'inspecteur, accédez au premier panneau (ou appuyez sur la commande 1), puis définissez les champs marqués Barre d'état, Barre supérieure et Barre inférieure sur Aucun dans la section intitulée "Éléments de l'interface utilisateur simulée". Vous devrez peut-être cliquer sur le petit triangle pour les rendre visibles.

4
davecom

Drôle, j'ai un problème similaire. J'ai supprimé toutes les vues du fichier xib et rajouté une vue. Définissez la barre d'état sur "non spécifié" afin que la barre d'état ne soit pas prise en compte. La vue, une fois 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 prévu. Après avoir changé la hauteur à 480 et l'avoir connecté au propriétaire du fichier et changé la couleur pour la rendre distinctive par rapport à l'arrière-plan. Je constate qu'il y avait une bande blanche entre le haut de l'écran et la vue. J'ai augmenté mon code avec:

#define RECTLOG (rect) (NSLog (@ "" #rect @ "x:% fy:% fw:% fh:% f", rect.Origin.x, rect.Origin.y, rect.size.width, rect .taille.hauteur)); 

dans viewDidLoad

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

Il s'avère que la vue est telle qu'elle est chargée à partir d'IB est en fait (0, 20, 320, 480) En guise de solution, je réinitialise le cadre de la vue avec self.view.frame = CGRectMake (0, 0, 320, 480);

J'utilise IB 3.2.5

J'adorerais connaître un petit correctif pour celui-ci.

1
cramhead

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

Tout ce que j'ai fait était d'ajouter un autre UIView et de tout faire glisser de mon ancien UIView vers le nouveau, puis de supprimer l'ancien.

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

J'utilise le générateur d'interface intégrée XCode 4.

1
PowerAktar

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

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

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

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

Modifiez simplement votre nom de classe avec le nom de classe correct et vous avez terminé;)

0
jeet.chanchawat