2016-04-12 5 views
1

Wie fügt man eine Beschränkung für die Höhe einer Prototypzelle mithilfe eines Storyboards hinzu?Die Höhe einer Prototypzelle kann nicht als Einschränkung im Storyboard festgelegt werden

Im ersten Screenshot unten habe ich das "Reset to Selected Constraints" des Storyboards verwendet, um sie automatisch basierend auf der Leinwand festzulegen. Ich habe es sowohl auf der View-Controller-Ebene als auch auf der Ansichtsebene (n) ausprobiert. Aber das Ergebnis war in jedem Fall das gleiche - es fügte nur die wenigen Einschränkungen hinzu, die im Screenshot zu sehen sind, und wenn der Code ausgeführt wird, wird die blaue Zelle mit einer Höhe angezeigt, die der roten entspricht.

enter image description here

Wenn ich jetzt versuchen, eine zusätzliche explizite Einschränkung für die Höhe der Zellen hinzuzufügen, es wird mich nicht lassen - die Option abgeblendet.

Wenn ich alle Beschränkungen lösche und versuche, sie manuell hinzuzufügen, ist die Option, sie hinzuzufügen, immer noch deaktiviert - warum ist das so? Siehe Screenshot unten für ein Beispiel. Anstatt den headerCall wie im Screenshot zu wählen, wenn ich stattdessen die Inhaltsansicht auswähle, um die Einschränkungen zu setzen, ist es gleich, d. H. Die eingestellte Fähigkeit ist deaktiviert.

Ich versuche nur Prototypzellen hinzuzufügen, wobei ein Typ einen Abschnittskopf darstellt, der schmal ist, und ein anderer Typ eine Dateninhaltzelle darstellt, die breiter ist, aber Code macht es nicht offensichtlich, warum ich nicht kann. (Ich habe keine ähnlichen Probleme Einstellung Einschränkungen mit einem der anderen View-Controller/Ansichten, nur diese Prototyp-Zellen).

Es gibt keinen Code in der View-Controller Einstellung Höhen oder Einschränkungen etc. Es ist praktisch leer, ich habe es nur erstellt, um das Problem neu zu erstellen.

enter image description here

Antwort

1

Eigentlich Einschränkungen sollten nicht direkt zum Inhalt Ansicht UITableViewCell angewendet werden, wie sie bereits als dynamische wrapper wirken und ihre Höhe einzustellen, entsprechend ihrer Subviews.

Versuchen Sie, eine Unteransicht zur Inhaltsansicht hinzuzufügen, und legen Sie eine Höheinschränkung für diese Unteransicht fest. Gleichzeitig fixieren Sie alle Seiten Ihrer neuen Unteransicht mit der Inhaltsansicht.

Wenn Sie eine statische Höhe von Zelle erwarten, dann bitte unter Code überschreiben und machen Sie Ihren Viewcontroller implementieren UITableViewDelegate:

override func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat 

Oder wenn Sie Ihre Zellenhöhe von Höhenbeschränkungen berechnet werden möchten Sie gerade angewendet SubView der Inhaltsansicht, in diesem Fall:

self.tableView.rowHeight = UITableViewAutomaticDimension; 
0

Ich denke, wir können die Einschränkungen für die UITableViewCell nicht festlegen. Nur eine Möglichkeit, die Einschränkungen programmgesteuert festzulegen. Sie können die

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    //... 
} 

schreiben Hier können Sie zwei Höhen für verschiedene Zeilen geben.

0

Sie können keine Einschränkungen für Ihre Zelle festlegen. Sie können Einschränkungen für die contentView festlegen. Und setze die Höhe der Zelle vom Größeninspektor. Wenn Sie eine dynamische Größe für Ihre Zelle haben möchten, können Sie

verwenden
self.tableView.estimatedRowHeight = 44.0; 
self.tableView.rowHeight = UITableViewAutomaticDimension; 

Aber Sie müssen Auto-Layout für das verwenden. Hoffe, das wird dir helfen. :)

Verwandte Themen