Динамический просмотр текста с арабским вводом текста
Я использую динамический просмотр текста.
func textViewDidChange(_ textView: UITextView) {
let str = textView.text! as NSString
let size = str.size(attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 20.0)])
textView.frame = CGRect(origin: textView.frame.origin, size: size)
}
Этот код используется для динамического изменения высоты и ширины. Это хорошо работает при использовании "английского". Проблема в том, что когда я меняю язык на "арабский", текстовый вид должен увеличивать ширину влево, но он все равно увеличивает ширину вправо.
1 ответ
Сначала проверьте систему координат экрана iPhone ниже.
Я говорю, что если вы увеличите ширину, это всегда будет увеличивать ширину вправо в iPhone. Поэтому установите исходный источник UITextView максимально правым, а затем уменьшите координату X источника на вычисляемый вами размер "размер", а затем установите новые значения источника и размера для фрейма UITextView. Надеюсь, ты понимаешь.
Например:
Допустим, ваш исходный источник UITextView имеет значение (300,30), а размер (30,30). Теперь вы вводите некоторый текст на арабском языке и рассчитываете размер текста как 100. Теперь X вашего нового источника будет 300 - 100 = 200
so newOrigin = (200,30)
and newSize = (100,30)
Теперь установите UITextView frame as- textView.frame = CGRect(origin: newOrigin, size: newSize
)