2016-03-24 8 views
0

Ich habe Zelle und in dieser Zelle anzeigen mit Textansicht darin. Auf Textview ist Grenze unten mit EZSwiftExtensions.Swift ios Textansicht in Tabellenansicht Zelle nicht in der richtigen Größe generiert

Jetzt Problem ist, dass Grenze nicht volle Breite beim ersten Laden ist, aber wenn ich scrolle nach unten und scrolle nach oben, dass Grenze ist volle Breite.

Warum passiert das?

Wenn app Lasten:

enter image description here

Wenn nach unten scrollen und kommen zurück nach oben:

enter image description here

Handy Xcode:

enter image description here

Zellcode:

import UIKit 
import EZSwiftExtensions 

class JokeTableViewCell: UITableViewCell { 

    var item: Joke! { 
     didSet { 
      cellView.setCornerRadius(radius: 4) 
      hearthImg.image = UIImage(named: "HearthWhite") 
      starImg.image = UIImage(named: "StarWhite") 
      txtLabel.addBorderBottom(size: 1, color: UIColor.lightGrayColor()) 
      setupCell() 
     } 
    } 

    @IBOutlet weak var cellView: UIView! 
    @IBOutlet weak var authorLabel: UILabel! 
    @IBOutlet weak var txtLabel: UILabel! 
    @IBOutlet weak var hearthImg: UIImageView! 
    @IBOutlet weak var likesLabel: UILabel! 
    @IBOutlet weak var starImg: UIImageView! 
    @IBOutlet weak var scoreLabel: UILabel! 

    override func awakeFromNib() { 
     super.awakeFromNib() 
    } 

    override func setSelected(selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 
    } 

    func setupCell() { 
     authorLabel.text = item.creator 
     if item.creator == "" { 
      authorLabel.text = "Aninomno" 
     } 
     txtLabel.text = item.text 
     if item.liked == true { 
      hearthImg.image = UIImage(named: "HearthRed") 
     } 
     if item.rated == true { 
      starImg.image = UIImage(named: "StarYellow") 
     } 
     likesLabel.text = item.likes.toString 
     scoreLabel.text = item.score.toString 
    } 

} 

Ich brauche es immer volle Breite.

+1

Es gibt ein paar resons für die das passieren könnte. Haben Sie überprüft, ob die 'textView'-Größe vor dem Scrollen wie erwartet ist? Wenn nicht, verwenden Sie den Debugger zum Überprüfen. – Jelly

+0

Es ist, ich testete auf langen String, so dass es volle Breite zeigt, aber Grenze ist immer noch nicht die volle Breite. –

+0

Meine Vermutung ist, dass Sie Autolayout verwenden und die Linie wird gezeichnet, bevor die Ansichten aktualisiert werden, um die Einschränkungen widerzuspiegeln. Ich denke, es ist ein Fehler in der Bibliothek, die Sie verwenden, können Sie mehr Details (oder einen Code) teilen, die Sie verwenden. – Jelly

Antwort

1

Die Implementierung der addBorderBottom ist nicht so toll. Sie könnten layoutSubviews überschreiben und addBorderBottom dort verwenden und es sollte funktionieren. Diese Methode wird jedoch mehrmals aufgerufen, und Sie haben mehrere übereinander gestapelte Rahmen. Sie könnten sich selbst eine Grenze implementieren, indem Sie eine UIView mit Höhe 1px als Subview und einige Randbeschränkungen verwenden, denke ich, das ist die einfachste Lösung.

+0

Ich dachte über diese Lösung nach, ich denke, dass ich diese Lösung verwenden werde .. danke .. –

Verwandte Themen