我理解,通过使用NSTextAlignment.Natural
,你可以允许标签绘制它的内容,使用给定语言的默认对正方向,这有助于对本地化进行叠加,允许标签用英语/西班牙语等语言从左到右绘制文本.用阿拉伯语等语言从右到左。现在我的问题是,我希望有一个标签画在与.Natural相反的方向,所以在一种从左到右的语言中,文本应该与右对齐,而在从右到左的语言中,它应该与左对齐。
为此,我找不到NSTextAlignment枚举选项。所以我希望有人能给我一些关于如何完成这件事的建议?
非常感谢!
发布于 2016-02-05 13:46:35
天知道为什么苹果不提供NSTextAlignmentNaturalInverse或类似产品。
这是我们在生产应用程序中使用的代码.
+ (BOOL)isLanguageLayoutDirectionRightToLeft
{
return [UIApplication sharedApplication].userInterfaceLayoutDirection == UIUserInterfaceLayoutDirectionRightToLeft;
}
someLabel.textAlignment = [UIApplication isLanguageLayoutDirectionRightToLeft] ? NSTextAlignmentLeft : NSTextAlignmentRight;
发布于 2017-12-18 08:58:44
“谢谢你”奥利弗,这是我最后在斯威夫特使用的东西:
扩展
extension NSTextAlignment {
static var invNatural: NSTextAlignment {
return UIApplication.shared.userInterfaceLayoutDirection == .rightToLeft ? .left : .right
}
}
用法
myLabel.textAlignment = .invNatural
发布于 2015-08-27 10:38:50
我不认为有一个文本对齐“不自然”。
但是,您可以使用NSLocale
检索+characterDirectionForLanguage:
的自然语言方向。有了这个,您可以自己设置对齐。
NSLocale *locale = [NSLocale currentLocale];
UInt dir = [NSLocale characterDirectionForLanguage:locale.localeIdentifier];
NSLog(@"%d", dir); // returns 1 for left-to-right on my computer (German, de_DE) Hey, that should be ksh_DE!
https://stackoverflow.com/questions/32245986
复制相似问题