2017-06-26 5 views
1

In meiner App habe ich eine Tabellenansicht mit einer Bild-, Beschriftungs- und Textansicht in jeder Zelle. Ich möchte in der Lage sein, die Zellen automatisch zu skalieren, abhängig von der Menge des Inhalts in der Textansicht. (Die Textansicht ist der unterste Text.)Swift, benutzerdefinierte Größe ändern Benutzerdefinierte Tabellenansicht Zellen

Bisher habe ich die richtigen Einschränkungen hinzugefügt; Führen, Nachziehen, Oben und Unten zur Textansicht und Scrollen und Bearbeiten deaktiviert.

In meiner tableViewController.swift Datei habe ich diesen Code geschrieben:

override func viewWillAppear(_ animated: Bool) { tableView.estimatedRowHeight = 100 tableView.rowHeight = UITableViewAutomaticDimension }

Dies ist jedoch nicht funktioniert, wie wenn ich mehr Text in die Textansicht hinzufügen, schneidet sie einfach ab.

Vielleicht hat dies etwas mit der Karte wie Aussehen zu tun, ich habe eine UIView in jeder Zelle, die als eine Karte fungiert.

Ich weiß ehrlich nicht, was ich falsch

Ein Bild mache, ist unten von dem, was meine app aussieht und wenn jemand das wäre sehr geschätzt

sein helfen könnte

enter image description here

+0

Haben Sie den Inhalt Modus 'Skalieren auf Fill' im Interface Builder Set für Ihre' UITextView' – Barns

+0

ich das Auto der Größe gefunden hart zu verwenden, wenn ich mehr als ein textView innen habe und ich Höhe Berechnung immer selbst mache. –

+0

Ich bin interessiert zu wissen, wie Sie diese Räume zwischen den Zellen und der abgerundeten Form erstellt haben. –

Antwort

3

Überprüfen Sie, ob Ihre Einschränkungen wie diese sind (basierend auf dem Bild):

Imageview: auf Top und Führende des Containers, mit fixer Höhe und Breite Werte.

Etikett: Sie können es auf den oberen und horizontalen Platz Ihres Bildes einstellen, mit fester Höhe und Breite.

textView: Führt zu Bild, oberster Platz zum Beschriften, Nachziehen und unten zum Container.

Und halte

tableView.estimatedRowHeight = 100 
     tableView.rowHeight = UITableViewAutomaticDimension 

in Ihrem viewWillAppear mit()

0

Stellen Sie sicher, dass der Inhalt Modus Scale To Fill Ihrer UITextView sicher gesetzt Sie sich, dass es keine Höhenbeschränkungen für die UITextView sind und die Karte UIView

Versuchen Sie, die geschätzte Höhe in viewDidLoad hinzuzufügen:

override func viewDidLoad() { 
    tableView.estimatedRowHeight = 100 
    tableView.rowHeight = UITableViewAutomaticDimension 
} 

Vielleicht ist das Autoheight nicht funktioniert, weil die UIView über den UITextView. Versuchen Sie, die sizeToFit und layoutIfNeeded Methoden zur UIView im cellForRowAt zu nennen:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
let cell = tableView.dequeueReusableCell(withIdentifier: "Identifier", for: indexPath) as! CustomTableViewCell 
cell.vwCard.sizeToFit() 
cell.vwCard.layoutIfNeeded() 
return cell 
} 

Sie auch die sizeToFit und layoutIfNeeded als auch für die UITextView versuchen.

Hoffnung das funktioniert ..

+0

Ich habe alle oben genannten versucht und sogar versucht, die Hintergrundkarte zu löschen, aber immer noch es funktioniert nicht. Noch mehr Ideen? wirklich leid @ Abadii176 –

+0

Was ist das Einsatzziel Ihrer Anwendung und welche iOS-Version führt Ihren Simulator aus? – Abadii176

+0

Deployment ist 10.0 und sim ist 10.3.1 –

Verwandte Themen