2016-06-17 4 views
2

StoryboardObjective C Tabellenzelle InhaltAlle die Ansichtshierarchie ist nicht für die Einschränkung hergestellt

Ich habe ein Etikett mit einem Storyboard hinzugefügt i habe (Constraint top: 10 links: 0 rechts: 0) ein Label in der Tabelle . Nach dem Stand, wenn Bild schaffen wollte, und fügen Sie Constraint ich diesen Fehler:

2016-06-17 16:02:59.235 Cellin[3748:162565] *** 
Terminating app due to uncaught exception 
'NSInvalidArgumentException', reason: '*** +[NSLayoutConstraintconstraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: Constraint must contain a first layout item' 

diesen Fehler behoben fehlt IBOutlet; neue Fehler:

The view hierarchy is not prepared for the constraint: <NSLayoutConstraint:0x7fce22494cf0 V:[UILabel:0x7fce22490340'Hello']-(50)-[UIImageView:0x7fce226636c0]> 
    When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break on -[UIView(UIConstraintBasedLayout) _viewHierarchyUnpreparedForConstraint:] to debug. 
2016-06-17 16:17:14.152 Cellin[3889:170014] *** Assertion failure in -[UITableViewCellContentView 

My Table-Code

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    TableCellController *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"]; 
    cell.TLabel.text = [arr objectAtIndex:indexPath.row]; 
    if(true){ 
     UIImageView *images = [[UIImageView alloc] init]; 
     [images setTranslatesAutoresizingMaskIntoConstraints:NO]; 
     [cell.contentView addSubview:images]; 
     images.image = [UIImage imageNamed:@"image.png"]; 

     NSLayoutConstraint *TComp = [NSLayoutConstraint constraintWithItem:cell.TLabel attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:images attribute:NSLayoutAttributeTop multiplier:1.0 constant:50.0]; 

     [cell.contentView addConstraint:TComp]; 
    } 
    return cell; 
} 

Antwort

0

Constraint muss ein erstes Layout-Element enthalten sagt klar, dass Sie die firstItem in diesem Aufruf fehlen.

NSLayoutConstraint *TComp = [NSLayoutConstraint constraintWithItem:cell.TLabel attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:images attribute:NSLayoutAttributeTop multiplier:1.0 constant:50.0]; 

Vielleicht müssen Sie prüfen, ob cell.TLabel richtig geladen wird. Fehlende IBOutlet?

+0

Ihr Recht " dank“ich bin fest, aber jetzt Fehler: die Hierarchie Ansicht ist nicht für die Einschränkung hergestellt: \t Wenn Zu einer Ansicht hinzugefügt, die Einschränkung Die Elemente von int müssen Nachkommen dieser Ansicht (oder der Ansicht selbst) sein. Dies stürzt ab, wenn die Einschränkung aufgelöst werden muss, bevor die Ansichtshierarchie zusammengefügt wird. Brechen auf - [UIView (UIConstraintBasedLayout) _viewHierarchyUnpreparedForConstraint:] zu debuggen. 2016-06-17 16: 17: 14.152 Cellin [3889: 170014] *** Assertionsfehler in - [UITableViewCellContentView –

+0

Bitte stellen Sie eine andere Frage. Dieser ist gelöst. Auch wenn Sie denken, dass es korrekt ist. Du solltest es als Antwort akzeptieren. –

0

Überprüfen Sie folgende Gründe, um die App zum Absturz zu bringen.

1) Wenn Sie auf Ihre Ansichten mit Eigenschaften hängen, stellen Sie sicher, dass sie strong sind! Dies könnte erklären, dass sie nil sind.

2) die Constraint-Code aus dem Verfahren initWithNib Bewegen

3) den Blick auf das [NSLayoutContraint constraintWithItem ...] Methode viewDidLoad sind vergangen nil ... aus diesem Grund ist auch für Crash

Verwandte Themen