Inattendu NSAutoresizingMaskLayoutConstraint l'ajout de UIView de plume de mise en page automatique storyboard scène

J'ai la suite de l'IB et les deux points de vue ont "Utiliser la Mise en page Automatique' et 'Redimensionne les sous-vues" off.

Inattendu NSAutoresizingMaskLayoutConstraint l'ajout de UIView de plume de mise en page automatique storyboard scène

J'essaye simplement d'ajouter une instance de mise en page automatique de la Vue à un conteneur en vue de sorte que ses bords répondre de son récipient qu'en vue des bords. Le conteneur de vue des Usages Disposition Automatique sur et est de la même hauteur, mais la largeur est deux fois plus. Voici le code:

- (IBAction)addSubviewButton:(id)sender
{
  UIView *autolayoutView = [[[NSBundle mainBundle] loadNibNamed:@"AutolayoutView" owner:nil options:nil] objectAtIndex:0];
  [self.containerView addSubview:autolayoutView];

  [self.containerView addConstraint:
   [NSLayoutConstraint constraintWithItem:autolayoutView
                            attribute:NSLayoutAttributeLeading
                            relatedBy:NSLayoutRelationEqual
                               toItem:self.containerView
                            attribute:NSLayoutAttributeLeading
                           multiplier:1
                             constant:0]];
  [self.containerView addConstraint:
   [NSLayoutConstraint constraintWithItem:autolayoutView
                            attribute:NSLayoutAttributeTrailing
                            relatedBy:NSLayoutRelationEqual
                               toItem:self.containerView
                            attribute:NSLayoutAttributeTrailing
                           multiplier:1
                             constant:0]];
  [self.containerView addConstraint:
  [NSLayoutConstraint constraintWithItem:autolayoutView
                           attribute:NSLayoutAttributeTop
                           relatedBy:NSLayoutRelationEqual
                              toItem:self.containerView
                           attribute:NSLayoutAttributeTop
                          multiplier:1.0
                            constant:0.0]];
  [self.containerView addConstraint:
  [NSLayoutConstraint constraintWithItem:autolayoutView
                           attribute:NSLayoutAttributeBottom
                           relatedBy:NSLayoutRelationEqual
                              toItem:self.containerView
                           attribute:NSLayoutAttributeBottom
                          multiplier:1.0 constant:0.0]];
}

Une erreur se produit:

Probably at least one of the constraints in the following list is one you don't want...
(
"<NSIBPrototypingLayoutConstraint:0x8c364d0 'IB auto generated at build time for view with fixed frame' H:[UIView:0x8c356f0(275)]>",
"<NSLayoutConstraint:0x8d43d80 H:|-(0)-[AutolayoutView:0x8d47a30]   (Names: '|':UIView:0x8c356f0 )>",
"<NSLayoutConstraint:0x8d09260 AutolayoutView:0x8d47a30.trailing == UIView:0x8c356f0.trailing>",
"<NSAutoresizingMaskLayoutConstraint:0x8d0eca0 h=--& v=--& AutolayoutView:0x8d47a30.midX == + 70>"
)

Ressemble NSAutoresizingMaskLayoutConstraint est créé automatiquement sur mise en forme automatique de la Vue après il est ajouté une sous-vue? Lors de l'impression mise en page automatique de la Vue des contraintes dans didMoveToSuperview, il n'existe pas encore. Comment cela peut-il être résolu? Je voulais essayer de créer des contraintes sur la mise en page automatique de la Vue de l'IB comme des espaces réservés à ignorer au moment de la construction, mais de l'IB a toutes les options de mise en page automatique désactivé pour la mise en page automatique de la Vue.

Découvrez les attributs de l'affichage de niveau supérieur de l'IB. Il devrait y avoir une case à cocher pour "Traduit d'un redimensionnement automatique Masque de Contraintes". Vous devez désactiver cette fonction. Alternativement, vous pouvez définir la translatesAutoresizingMaskIntoConstraints propriété dans le code après le chargement de la vue.
merci pour l'astuce. La désactivation de translatesAutoresizeMaskIntoConstraints dans le code a fonctionné. "Utiliser la mise en forme automatique" a été le plus proche que je pouvais trouver de l'IB, mais le Autoresize contrainte était encore arriver créé.

OriginalL'auteur user1192805 | 2014-08-03