如何在iOS 8及更高版本中处理RTL语言的后退按钮图像

时间:2019-03-15 04:30:42

标签: ios objective-c right-to-left

我在应用程序的导航栏中将后退按钮图像本地化为英语(<)和阿拉伯语(>)。当系统语言设置为阿拉伯语时,在iOS 9和更高版本中,iOS将自动翻转导航栏,并且后退按钮将在右侧,因此“>”图像是一个完美的方向。但是,在iOS 8中,后退按钮仍位于左侧,在这种情况下,“>”会很奇怪。我可以在代码中使用针对其他语言本地化的图像吗?任何建议表示赞赏。

2 个答案:

答案 0 :(得分:0)

要获得对按钮图标的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: <- */

答案 1 :(得分:0)

这些类型的图像都不需要额外的图像 从属性中选择特定资产,然后选择 “方向”以前将其“固定”,将其转换为“从左到右,后视镜”