RTL показывает числа в конце строк

Попытка отобразить еврейскую строку, которая запускается с числа, всегда отображает число в конце строки как так: 1. יום שישי בבוקר

но мне нужно число, которое будет отображено в правой стороне текста -

какое-либо решение этого?

Это происходит с UILabel & UITextField & UITextView

и попытка записать число в левой стороне также производит тот же resault.

Проигрывание с комбинациями UITextAlignment будет не помогать.

17
задан j0k 5 June 2013 в 11:53
поделиться

2 ответа

не уверен, есть ли более интересный способ сделать это, но вы можете попробовать что-то вроде этого:

NSString *test = @"12. just a teststring";
NSString *number = [test substringToIndex: [test rangeOfString: @" "].location];
NSString *text = [test substringFromIndex: [test rangeOfString: @" "].location];
test = [NSString stringWithFormat: @"%@ %@", text, number];
// test == "just a teststring 12."
0
ответ дан 30 November 2019 в 10:49
поделиться

Вам не нужно изменять какие-либо настройки в UILabel, просто поместите символ с юникодом 0x200F перед вашей строкой. Это причина:

В Unicode многие символы имеют определенную направленность, которая позволяет системе знать, что они должны быть написаны, например LTR, например سلام. В абзаце обычно используется направление первого символа. Поэтому ваша строка без номера автоматически набирается справа налево.

Некоторые символы, например числа, имеют «слабую» направленность, поэтому они в основном принимают направление своего окружения. Когда вы набираете «1. בבוקר», система сначала видит 1, поэтому принимает обычное направление LTR. Изменение выравнивания не поможет, поскольку оно просто сдвигает весь текст вправо или по центру.

Чтобы решить эту проблему, в Unicode есть два символа-маркера (LTR: 0x200E, RTL: 200F). Они невидимы, но определяют направление. Итак, хотя «1. בבוקר» - это ...

  1. בבוקר

, если вы наберете «# x200F» + «1. בבוקר», это будет выглядеть так:

1. בבוקר

22
ответ дан 30 November 2019 в 10:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: