Как я могу вычислить количество строк UILabel с фиксированной шириной и заданным текстом?Как я могу вычислить количество строк UILabel с фиксированной шириной?
ответ
Этот код предполагает, что label
имеет нужный текст, и его рамка уже установлена на нужную ширину.
- (int)lineCountForLabel:(UILabel *)label {
CGSize constrain = CGSizeMake(label.bounds.size.width, FLT_MAX);
CGSize size = [label.text sizeWithFont:label.font constrainedToSize:constrain lineBreakMode:UILineBreakModeWordWrap];
return ceil(size.height/label.font.lineHeight);
}
Update:
Если все, что вы хотите, чтобы определить требуемую высоту этикетки на основе его текста и текущей ширины, то изменить это:
- (CGSize)sizeForLabel:(UILabel *)label {
CGSize constrain = CGSizeMake(label.bounds.size.width, FLT_MAX);
CGSize size = [label.text sizeWithFont:label.font constrainedToSize:constrain lineBreakMode:UILineBreakModeWordWrap];
return size;
}
Возвращенный size
- это правильная ширина и высота, чтобы содержать этикетку.
Ваш вопрос задал вопрос о вычислении количества строк. Вы говорите, что действительно хотите необходимую высоту (в точках)? – rmaddy
как вы написали количество строк равно высоте, деленной на строкуHeight. Я действительно хотел узнать количество строк, чтобы вычислить правильную высоту для моей метки, сохраняя фиксированную ширину. – Alexis
На самом деле ваше решение работает хорошо. Благодаря! – Alexis
Сначала получите высоту этикетки от размера этикетки с использованием constrainedSize
CGSize labelSize = [label.text sizeWithFont:label.font
constrainedToSize:label.frame.size
lineBreakMode:UILineBreakModeWordWrap];
CGFloat labelHeight = labelSize.height;
как только вы имеете высоту метки проверьте количество строк с размером шрифта, где fontsize
размера вы используете для ваших метка. например это может быть 10 или, в зависимости от ваших требований
CGSize sizeOfText = [label.text sizeWithFont:label.font
constrainedToSize:label.frame.size
lineBreakMode:UILineBreakModeWordWrap];
int numberOfLines = sizeOfText.height/label.font.pointSize;
как я могу исправить ширину? – Alexis
Разделение на fontSize отлично, спасибо. –
устарел в iOS 7 –
Вы можете вычислить высоту по вертикали, необходимой для отображения строки с помощью sizeWithFont: constrainedToSize: метода на NSString. Учитывая этот размер, вы можете изменить размер метки, чтобы отобразить всю строку.
- 1. UILabel с фиксированной шириной и гибкой высотой
- 2. Как я могу сделать ячейку с фиксированной шириной в GridBagLayout
- 3. JScrollPane с фиксированной шириной
- 4. Вычислить высоту блока текста с фиксированной шириной в php
- 5. Linq Как вычислить количество строк?
- 6. Как читать несколько строк из текстового файла с фиксированной шириной?
- 7. Размер JTextPane с фиксированной шириной
- 8. Изменение анимации UILabel количество строк
- 9. JQuery DataTable с фиксированной шириной столбца
- 10. Как создать пять строк с переменной фиксированной/переменной шириной?
- 11. Как создать текстовый файл с фиксированной шириной?
- 12. Как можно кодировать Unicode с фиксированной шириной?
- 13. Получить количество строк в UILabel
- 14. Pandas: гистограмма с фиксированной шириной
- 15. Matlab TextScan с фиксированной шириной
- 16. Проблемы с фиксированной шириной телефона
- 17. элементы с фиксированной шириной css
- 18. Неправильное количество строк для UILabel
- 19. Как создать многострочный UILabel с максимальной шириной?
- 20. Как достичь LinearLayout с фиксированной процентной шириной?
- 21. Текстовый файл с фиксированной шириной
- 22. Monotouch - вычислить высоту UILabel
- 23. Сложность с шириной UILabel и автоотключение
- 24. div фон с фиксированной шириной
- 25. Макет страницы с фиксированной шириной
- 26. Титульные карточки с фиксированной шириной
- 27. Как создать страницу с фиксированной шириной.
- 28. Как центрировать выравнивание div с фиксированной шириной?
- 29. заголовок как facebook с фиксированной шириной
- 30. Найти центр ограничивающей рамки с фиксированной шириной
http://stackoverflow.com/questions/4172615/how-to-find-uilabels-number-of-lines – Sunkas
уже пробовал, он не работает – Alexis