numberOfLines в UILabel не просыпается после использования NSMutableAttributedString - PullRequest
1 голос
/ 04 ноября 2019

Я делаю многоцветный текст в UILabel. это работает хорошо. но проблема у меня есть, я могу показать несколько строк в UIlabel. это означает, что свойство numberOfLine не работает.

     extension NSMutableAttributedString {

     func setColorForText(textForAttribute: String, withColor color: UIColor) {
        let range: NSRange = self.mutableString.range(of: textForAttribute, options: .caseInsensitive)
        self.addAttribute(NSAttributedString.Key.foregroundColor, value: color, range: range)

    }




         let stringValue = "Natural air is most important part of human body. people got too much problem because of it. please everybody try to do best part for it"


        let attributedString: NSMutableAttributedString = NSMutableAttributedString(string: stringValue)
        attributedString.setColorForText(textForAttribute: "\(item.catName ?? "")", withColor: Colors.green)

        postInfoLabel.font = UIFont.systemFont(ofSize: ViewSize.width/33)
       postInfoLabel.numberOfLines = 0
           postInfoLabel.attributedText = attributedString

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

numberOfLines - это не функция, а свойство, указывающее, сколько строк должно отображаться UILabel. Если вы установите это значение на 0, вы дадите метке использовать столько строк, сколько необходимо для отображения текста. Вы можете прочитать более подробную информацию в документация numberOfLines .

Я не совсем уверен, чего вы хотите достичь, установив размер шрифта как ViewSize.width/33, возможно, есть проблема (например, ViewSize не рассчитывается должным образом). Не могли бы вы объяснить более подробно, чего вы хотите достичь, и что вы получите вместо этого?

0 голосов
/ 04 ноября 2019

Техника, используемая для переноса и усечения текста метки, заключается в установке значения свойства lineBreakMode равным NSLineBreakByWordWrapping или NSLineBreakByTruncatingTail в зависимости от вашего варианта использования. Это должно работать для вас, когда вы устанавливаете свойство numberOfLines в 0 для UILabel.

...