2014-10-15 3 views
6

Ich habe eine Tabellenansicht mit automatischen Layoutbeschränkungen, alles funktioniert in iOS 7, aber wenn ich in iOS 8 getestet habe, bekomme ich die folgende Warnungios 8 (UITableViewCell): Constraints schlagen zweideutig eine Höhe von Null für eine Inhaltsansicht einer Tabellenansichtzelle vor

Nur einmal warnen: Es wurde ein Fall erkannt, in dem Einschränkungen eine Höhe von Null für die Inhaltsansicht einer Tabellenansichtzelle mehrdeutig vorschlagen. Wir betrachten den Zusammenbruch als unbeabsichtigt und verwenden stattdessen Standardhöhe.

, nachdem ich eine profunde Untersuchungen zu diesem Thema gemacht i gefunden sollten Sie die folgenden Zeilen in viewDidLoad für iOS8 hinzufügen nur

self.tableView.rowHeight = UITableViewAutomaticDimension; 

self.tableView.estimatedRowHeight = 87; 

Danach noch bekomme ich diese Warnung und die Höhe der Zelle nicht korrekt ist die nicht von Storyboard

für weitere Informationen über UITableViewCell finden Sie unsere Einschränkungen für Content-Sichtzelle die Höhe nehmen

-(void) updateConstraints { 
    [super updateConstraints]; 


    if(!didSetupConstraints) { 
     didSetupConstraints = YES; 


    [self.contentView removeConstraints:self.contentView.constraints]; 
    // Interval Title 
    //Leading 
    constraint = [NSLayoutConstraint constraintWithItem:self.intervalTitle attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterX multiplier: 1.0 constant:0.0]; 
     [self.contentView addConstraint:constraint]; 

    //Top 
    constraint = [NSLayoutConstraint constraintWithItem:self.intervalTitle attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.marketLocationTitle attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0]; 
     [self.contentView addConstraint:constraint]; 
} 

Antwort

8

Auto-Layout ist genau das Richtige. Es ist unmöglich, die Zellenhöhe von .CenterX und .Top für das Etikett zu berechnen. Eine Möglichkeit, das Problem zu lösen, wäre das Entfernen der vorhandenen .CenterX-Einschränkung und das Hinzufügen einer neuen .Bottom-Einschränkung. Auf diese Weise konnte Auto Layout leicht die Höhe der Zelle berechnen.

+0

aber die Zeile hat ein Höhenattribut, warum denkt es, dass es vielleicht anders sein wird? – Caipivara

Verwandte Themen