Nach dem Einstellen es Layout-Konstante für Label nicht mehr funktioniert

stimmen
0

Ich habe eine Tabellenansicht mit automaticDimension für Höhe und 2-Zellen. Eine Zelle verfügt über eine Lese mehr Taste, die aktualisiert die Layout-Beschränkungs Konstante für ein Etikett (wie IBOutlet). Es funktioniert gut, und die Zellenhöhe Updates je nach Etikettenhöhe, aber wenn ich versuche, das Layout Einschränkung erstes Mal auf cellForRowAt Methode delegieren zu aktualisieren es funktioniert, aber nach, dass es nicht mehr funktioniert von der mehr Taste lesen (und der Layout-Beschränkungs Auslass Doesn ‚t werden nil).

    if cellType == .movie {
        let movieCell = cell as! MovieDescriptionCell
        movieCell.updateCellWith(movie: selectedMovie!)
        movieCell.infoLabelHeight.constant = 200. ***(here is the problem, if I don't have this the read more button works)***
        movieCell.readMorePressedBlock = { [weak self] (tag) in
            guard let strongSelf = self else { return }
            DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(70), execute: {
                strongSelf.tableView.reloadData()
            })
        }
    } 


@IBOutlet var infoLabelHeight: NSLayoutConstraint!


  @IBAction func onReadMoreButton(button: UIButton) {
    self.readMoreState = !self.readMoreState
    setReadMoreImageFor(state: readMoreState)

    let infoText = self.infoLabel.text
    let expectedHeight = infoText?.height(withConstrainedWidth: infoLabelWidth.constant, font: self.infoTextFont) ?? self.infoDefaultHeight

    self.infoLabelHeight.constant = self.readMoreState ? expectedHeight : self.infoDefaultHeight

    readMorePressedBlock?(button.tag)
}

Wie kann ich diese Arbeit machen? Wenn ich die Zeile löschen „movieCell.infoLabelHeight.constant = 200“, die mehr Taste funktioniert lesen, aber ich brauche die Konstante am Anfang zu setzen.

Vielen Dank.

Veröffentlicht am 27/11/2018 um 17:50
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Ich fand eine Lösung, wenn ich das Layout Einschränkung in awakeFromNib Methode setze die mehr Taste funktioniert (die Möglichkeit, wieder die Einschränkung zu ändern) lesen

override func awakeFromNib() {
    super.awakeFromNib()

    self.infoLabelHeight.constant = 200
}
Beantwortet am 28/11/2018 um 09:09
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more