#ios #objective-c #right-to-left
#iOS #objective-c #справа налево
Вопрос:
Я локализовал изображения кнопок возврата в навигационных панелях для английского (<) и арабского (>) языков в моем приложении. Когда для системного языка установлен арабский, в iOS 9 и более поздних версиях iOS автоматически перевернет панель навигации, и кнопка возврата будет справа, так что изображение «>» — идеальное направление. Однако в iOS 8 кнопка возврата по-прежнему находится слева, и в этом случае «>» будет довольно странным. Могу ли я использовать в своем коде изображение, локализованное для другого языка? Приветствуются любые предложения.
Комментарии:
1. Пожалуйста, попробуйте if ([curruntLan isEqualToString:@»ar»]) { UIImage *img = [UIImage imageNamed:@»icoBack»]; img = [UIImage imageWithCGImage:img. Масштаб изображения cg: изображение.ориентация масштаба: UIImageOrientationUpMirrored]; [self.btnBack setImage:img forState:UIControlStateNormal];
Ответ №1:
Вам не нужно иметь дополнительное изображение для этих типов Выберите конкретный ресурс из свойств выберите «Направление», ранее это было «исправлено» преобразуйте его в «Слева направо, зеркала»
Ответ №2:
Для поддержки 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: <- */