У меня есть UILabel
внутри ячейки, которая содержит несколько элементов. Мне нужно, чтобы метка присваивала строку, которая может заполнить высоту метки, т. Е. Переходить на несколько строк, если это необходимо. Мне удалось добиться этого, и если я запускаю приложение на iOS7 это, кажется, просто отлично (игнорировать желтоватый цвет фона): NSAttributed строка в нескольких строках в UILabel
Вот установка из UILabel:
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@ %@", sender, content]];
NSRange selectedRange = NSMakeRange(0, sender.length); // 4 characters, starting at index 22
[string beginEditing];
[string addAttribute:NSFontAttributeName
value:[AppereanceConfiguration fontMediumWithSize:18]
range:selectedRange];
[string endEditing];
self.notificationText.attributedText = string;
где самостоятельно .notificationText - это UILabel, о котором я говорю. В xib-файле для ячейки я установил минимальный размер шрифта на 3 и количество строк до 0. Как я уже говорил, он отлично работает на iOS 7, но на iOS 6 по какой-то причине он не знает, как делать перенос слов по себе и пытается «усечение хвоста», как это режим разрыва строки, который был установлен по умолчанию в XIb, в результате чего в клетке, глядя, как это:
Если изменить режим разрыва строки для переноса слов он разбивает приложение на IOS 6 говорится, что:
NSAttributedString invalid for autoresizing, it must have a single spanning paragraph style (or none) with a non-wrapping lineBreakMode.
Как получить эту работу на IOS 6?
Два комментарии. Во-первых, насколько я понимаю, минимальный размер шрифта не работает для UILabels с числом строк, отличных от 1. Во-вторых, вам, возможно, придется сделать перенос слов самостоятельно. Используйте 'boundingRectWithSize' в вашей атрибутной строке с бесконечной (большой) шириной. Затем разложите текст на строки и добавьте возврат каретки туда, где он им нужен. Не весело, но возможно. – Putz1103
Я не могу этого сделать, потому что текст не является статичным, т. Е. Он исходит из онлайн-сервиса, и я не знаю, где тоже нарушать линии. И загадочным является то, что он работает на iOS7 без использования каких-либо iOS 7 НАСКОЛЬКО МНЕ ИЗВЕСТНО. – damjandd
Они, должно быть, изменили способ работы NSATTributedStrings в iOS7. Так что ничего конкретного, но новые функции в фоновом режиме. И даже с динамическим текстом вы можете отформатировать его любым способом, используя метод, о котором я говорил. Вы получаете текст, назначая его этикетке. Вы можете отформатировать его перед назначением метки (если я не понимаю, как вы заполняете ячейку). – Putz1103