J'ai une étiquette et j'ai ajouté une chaîne qui lui est attribuée. La chaîne est,Pourquoi mon label est tronqué même si le nombre de lignes est 0 et aucune contrainte de hauteur?
let nameText = "My name is Shreesha and Im an iOS developer. My name is Shreesha and Im an iOS developer."`My name is Shreesha and Im an iOS developer. My name is Shreesha and Im an iOS developer.`
Dans ce texte, je suis en train d'ajouter un *
au début du texte alors j'ai utilisé une chaîne attribué et le code ressemble à ceci,
func attributedTextForFeeApplies() -> NSAttributedString {
let attributedText = NSMutableAttributedString(string: "* " + nameText)
attributedText.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.blue, range: NSMakeRange(0, attributedText.length))
attributedText.addAttribute(NSAttributedStringKey.font, value: UIFont.systemFont(ofSize: 10), range: NSMakeRange(0, attributedText.length))
let superScriptString = "* "
attributedText.addAttribute(NSAttributedStringKey.baselineOffset, value: 2, range: NSMakeRange(0, superScriptString.characters.count))
attributedText.addAttribute(NSAttributedStringKey.font, value: UIFont.systemFont(ofSize: 9), range: NSMakeRange(0, superScriptString.characters.count))
attributedText.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.blue, range: NSMakeRange(0, superScriptString.characters.count))
let superscriptAttributedString = attributedText
let paragraph = NSMutableParagraphStyle()
paragraph.lineBreakMode = .byTruncatingTail
superscriptAttributedString.addAttribute(NSAttributedStringKey.paragraphStyle, value: paragraph, range: NSMakeRange(0, superscriptAttributedString.length))
return superscriptAttributedString
}
Je donnai les contraintes à l'étiquette comme celui-ci,
Même si je donne un nombre de lignes à 0
et pas hei ght contrainte l'étiquette tronque comme celui-ci,
Mais quand je ne pas utiliser cette ligne de code attributedText.addAttribute(NSAttributedStringKey.baselineOffset, value: 2, range: NSMakeRange(0, superScriptString.characters.count))
il est bien comme ça fonctionne,
Et si ajouter *
dans la milieu (sans enlever attributedText.addAttribute(NSAttributedStringKey.baselineOffset, value: 2, range: NSMakeRange(0, superScriptString.characters.count))
), il fonctionne très bien, mais ne fonctionne tout simplement pas si je l'utilise au début du texte,
Capture d'écran:
Et cela fonctionne aussi si j'augmente la taille de la police.
Je pense qu'il y a un problème avec NSAttributedString
et sinon je veux savoir quel est le problème. Quelqu'un pourrait-il m'aider s'il vous plaît.
beacuse de ce laisser superscriptAttributedString = attributedText let paragraphe = NSMutableParagraphStyle() paragraph.lineBreakMode = .byTruncatingTail superscriptAttributedString.addAttribute (NSAttributedStringKey.paragraphStyle, valeur: paragraphe, plage: NSMakeRange (0, superscriptAttributedString.length)) votre lable peut mettre en nombre de lignes –
Je n'ai pas eu ce que vous avez dit (votre lable peut mettre en nombre de lignes?). Pourriez-vous élaborer? –
NSMutableParagraphStyle cela signifie que votre ligne unique convertir en plusieurs que si vous voulez envoyer un texte sur une seule ligne ne pas utiliser NSMutableParagraphStyle. –