Ich möchte den Absatz mit Read More/Read Less am Ende erstellen.
Hier sind meine Codes;
Wie wird die Etikettenhöhe für die automatische Anpassung in Read More/Less mit Swift 3 eingestellt?
func getLabelHeight(text: String, width: CGFloat, font: UIFont) -> CGFloat {
let lbl = UILabel(frame: .zero)
lbl.frame.size.width = width
lbl.font = font
lbl.numberOfLines = 0
lbl.text = text
lbl.sizeToFit()
lbl.adjustsFontSizeToFitWidth = true
return lbl.frame.size.height
}
@IBAction func btnReadMore(_ sender: Any) {
if isLabelAtMaxHeight {
btnReadmore.setTitle(NSLocalizedString("Read more", comment: ""), for: .normal)
btnReadmore.titleLabel!.font = UIFont (name: "Tharlon", size: 13)
isLabelAtMaxHeight = false
lblReviewHeight.constant = 29
lblReview.font = UIFont (name: "Tharlon", size: 13)
}
else {
btnReadmore.setTitle(NSLocalizedString("Read less", comment: ""), for: .normal)
btnReadmore.titleLabel!.font = UIFont (name: "Tharlon", size: 13)
isLabelAtMaxHeight = true
lblReviewHeight.constant = getLabelHeight(text: lblReview.text!, width: view.bounds.width, font: lblReview.font)
lblReview.font = UIFont (name: "Tharlon", size: 13)
lblReview.lineBreakMode = NSLineBreakMode.byTruncatingHead
}
}
ich auch die Bezeichnung "Zeilenumbruch" in Attribute Inspector eingestellt.
Das Problem ist, dass, wenn ich hinzufügen "NSLineBreakMode.byTruncatingHead" in weniger lesen, zeigen alle Texte vollständig. Aber einige Wörter an diesen Stellen im Text verschwinden.
Also, ich entfernen diesen Code und führen Sie die App. Zu dieser Zeit werden Texte nicht vollständig gezeigt und zeigen nur die Hälfte. Ich habe versucht, das Problem den ganzen Tag zu lösen.
Ich möchte keine andere Bibliothek verwenden.
Könnte mir bitte jemand helfen?
bro Ich konnte lblReviewHeight nicht entfernen, weil es die Höhe des Etiketts steuert, wenn ich auf Read/less button klicke. –
@MayPhyu Auto-Layout wird automatisch die Höhe für uns berechnen, wenn Sie eine rechte Einschränkung der Bezeichnung haben, das heißt, wenn Ihre Bezeichnung korrekt Einschränkungen von "Breite" oder "Führende" "Nachlaufende" oder "Links" "rechts" oder gibt Mit 'preferredMaxLayoutWidth' erhalten Sie eine' beste' Größe dieses Labels. –