2016-05-28 5 views
1

Приложение iOS, мы должны отображать новости, поступающие с сервера. UILabel используетсяiOS RTL - неправильное отображение английского языка внутри строки RTL

  • Все прекрасно, когда он приговор на одном языке только не обращая внимания на макете (мы переключение раскладки RTL к LTR для различных языков, включая арабский, иврит)
  • Когда внутри LTR у нас есть слова RTL, они разрушают структуру предложения (см. Изображение, BTN должен быть в начале строки, но он подпрыгнул до конца) English words inside RTL language Любая идея, как решить эту проблему? Заранее спасибо :)

ответ

0

Некоторая информация здесь полезно:

[[self label] setTextAlignment:NSTextAlignmentNatural]; 

AutoLayout + RTL + UILabel text alignment

Но иногда она все еще не работает, как ожидалось

3
"arabic text \u200E english text \u200F arabic text \u200E english text" 

решаемые проблемы

+0

Это не работает для меня. Моя строка подобна этому: 'self.testLabel.text = @" رقم HELLO سجل ";' –

1

Apple использует "Unic ode Двунаправленный алгоритм ", чтобы представить текст. Если первым символом в строке является LTR, алгоритм обрабатывает представление остальной строки как LTR. Если вы заранее знаете язык строки RTL, вы можете использовать unicode \ u200F и \ u202c для принудительного выравнивания RTL.

[NSString stringWithFormat:@"\u200F%@\u202c", @"your string with RTL content"] 

[NSString stringWithFormat:@"\ u200E%@\u202c", @"your string with LTR content"] 
Смежные вопросы