Я создаю изображение для экспорта в моем приложении iOS. Я использую UIGraphicsBeginImageContext для рисования элементов изображения, но я пытался рисовать UITextView на изображении.Получить количество строк в UITextView без contentSize.height
Сначала я создать родительский вид для рендеринга:
var parentView : UIView = UIView(frame: CGRectMake(0, 0, 700, 700))
Тогда я программно создать TextView и добавить все свойства. Я даю ему x = 100 и y = 100 для выравнивания текста на изображении. Ширина = 500 хорошо иметь запас 100px на каждой стороне:
var textView: UITextView = UITextView(frame: CGRectMake(100, 100, 500, 350))
textView.text = myText
textView.textContainerInset = UIEdgeInsetsMake(20, 20, 20, 20)
textView.backgroundColor = UIColor(red: 255, green: 255, blue: 255, alpha: 0.70)
textView.font = UIFont(name: "Helvetica Neue Light Italic", size: 35)
Тогда я оказать TextView в контексте, добавив его как подвид с родительским видом, а затем я получаю изображение для экспорта:
Проблема в том, что высота установлена на 350 пикселей, но иногда текст недостаточно длинный, чтобы использовать всю эту область. В идеале я хотел бы знать, сколько строк будет мой текст использовать, так что я могу дать ему пропорциональную высоту и не имеют белую неиспользованную область (см рис, например):
Любые идеи о том, как отображать текст вид с пропорциональной высотой? Большое спасибо!
Есть ли причина, что вы используете текстовый вид вместо UILabel? – Travis
Не совсем, может ли это быть с UILabel? –
UILabel отлично подходит для этого, учитывая, что это всего лишь две линии. Если вы используете раскадровки (что я настоятельно рекомендую вам сделать), вы можете изменить ограничения и размер UILabel, чтобы они соответствовали тексту. Просто не забудьте установить количество строк на 2. – Cole