Как обрабатывать изображения кнопок возврата для языков RTL в iOS 8 и более поздних версиях - PullRequest
0 голосов
/ 15 марта 2019

Я локализовал изображения кнопок «Назад» в панелях навигации для английского (<) и арабского (>) в моем приложении. Когда системный язык установлен на арабский, в iOS 9 и более поздних версиях iOS автоматически перевернет панель навигации, и кнопка «Назад» будет справа, поэтому изображение «>» является идеальным направлением. Тем не менее, кнопка «Назад» все еще слева в iOS 8, и в этом случае «>» будет довольно странно. Могу ли я использовать изображение, локализованное для другого языка в моем коде? Любое предложение приветствуется.

1 Ответ

0 голосов
/ 15 марта 2019

Для поддержки RTL для значков кнопок необходимо предоставить изображение во время выполнения, например:

//MARK: - Locale identifiers

enum LOCALE_IDENTIFIERS: String {
    case arabic = "ar-SA"
    case hindi = "hi"
    case urdu = "ur"
    case english = "en"
}

CURRENT_LANGUAGE = LOCALE_IDENTIFIERS.urdu.rawValue

/* Assume the CURRENT_LANGUAGE will return the current selected language */


/*This is what you need. The above code is just for making the sense*/
var iconName = ""
if Locale.characterDirection(forLanguage: CURRENT_LANGUAGE) == Locale.LanguageDirection.rightToLeft {
    iconName = "ic_back_button_RTL"
}else {
    iconName = "ic_back_button_LTR"
}

let backButtonImage: UIImage = UIImage(named: iconName)!
//Use this backButtonImage for your button.

/*The "ic_back_button_RTL" is an icon like: -> */    
/*The "ic_back_button_LTR" is an icon like: <- */
...