Je voudrais créer le paragraphe avec Read More/Read Less à la fin.
Voici mes codes;
Comment régler la hauteur de l'étiquette pour l'ajustement automatique Lire la suite/Moins avec Swift 3?
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
}
}
Je mets également l'étiquette "Word wrap" dans les attributs inspecteur.
Le problème est que lorsque j'ajoute "NSLineBreakMode.byTruncatingHead" dans la partie Read Less, tous les textes s'affichent complètement. Mais, certains mots dans ces endroits à l'intérieur du texte disparaissent. Donc, je supprime ce code et lance l'application. À ce moment-là, les textes ne sont pas montrés complètement et montrent seulement la moitié. J'ai essayé de résoudre ce problème toute la journée.
Je ne veux utiliser aucune autre bibliothèque.
Quelqu'un pourrait-il m'aider s'il vous plaît?
Je n'ai pas pu supprimer lblReviewHeight car il contrôle la hauteur de l'étiquette lorsque je clique sur le bouton Lire plus/moins. –
@MayPhyu mise en page automatique calculera automatiquement la hauteur pour nous si vous avez une bonne contrainte de cette étiquette, cela signifie que si votre étiquette a correctement les contraintes de 'largeur 'ou' leading' 'trailing' ou' left' 'right' ou donne un 'preferredMaxLayoutWidth' vous obtiendrez une' meilleure 'taille de cette étiquette. –