我需要显示一个带有两种不同样式(不同颜色,文字部分粗体)的文本的UILabel.通过使用attributText属性来解决这个问题.
我的问题是,文字可能会或可能不会超过我可以适合我的标签.当使用纯文本时,一切都按照我想要的方式工作.文本被包装以适应标签中的行数,并且如果/当文本长于可以在标签中显示时尾部被截断.
当我切换到使用attributText时,我只能在尾截断和字换行之间进行选择.如果我想要截断标签的尾部,只能使用截尾的一条线(尽管它可以适合10条线).如果我选择文字换行,那么尾部不被截断,但是不能贴在标签中的线条根本没有显示出来.
我的内容字符串不包含任何换行符,它只是一个长字符串.
解决方法
当我设置行距时,我错过了截断,但是我不得不将段落模式添加到段落样式
NSMutableParagraphStyle *paragrahStyle = [[NSMutableParagraphStyle alloc] init]; [paragrahStyle setLineSpacing:1.5]; [paragrahStyle setLineBreakMode:NSLineBreakByTruncatingTail]; NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:@"Long string that truncates"]; [attributedText addAttribute:NSParagraphStyleAttributeName value:paragrahStyle range:NSMakeRange(0,[attributedText length])]; self.label.attributedText = attributedText;