首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSTextAlignment逆.Natural

NSTextAlignment逆.Natural
EN

Stack Overflow用户
提问于 2015-08-27 09:44:55
回答 4查看 2K关注 0票数 13

我理解,通过使用NSTextAlignment.Natural,你可以允许标签绘制它的内容,使用给定语言的默认对正方向,这有助于对本地化进行叠加,允许标签用英语/西班牙语等语言从左到右绘制文本.用阿拉伯语等语言从右到左。现在我的问题是,我希望有一个标签画在与.Natural相反的方向,所以在一种从左到右的语言中,文本应该与右对齐,而在从右到左的语言中,它应该与左对齐。

为此,我找不到NSTextAlignment枚举选项。所以我希望有人能给我一些关于如何完成这件事的建议?

非常感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-02-05 13:46:35

天知道为什么苹果不提供NSTextAlignmentNaturalInverse或类似产品。

这是我们在生产应用程序中使用的代码.

代码语言:javascript
运行
复制
+ (BOOL)isLanguageLayoutDirectionRightToLeft
{
    return [UIApplication sharedApplication].userInterfaceLayoutDirection == UIUserInterfaceLayoutDirectionRightToLeft;
}

someLabel.textAlignment = [UIApplication isLanguageLayoutDirectionRightToLeft] ? NSTextAlignmentLeft : NSTextAlignmentRight;
票数 13
EN

Stack Overflow用户

发布于 2017-12-18 08:58:44

“谢谢你”奥利弗,这是我最后在斯威夫特使用的东西:

扩展

代码语言:javascript
运行
复制
extension NSTextAlignment {
    static var invNatural: NSTextAlignment {
        return UIApplication.shared.userInterfaceLayoutDirection == .rightToLeft ? .left : .right
    }
}

用法

代码语言:javascript
运行
复制
myLabel.textAlignment = .invNatural
票数 13
EN

Stack Overflow用户

发布于 2015-08-27 10:38:50

我不认为有一个文本对齐“不自然”。

但是,您可以使用NSLocale检索+characterDirectionForLanguage:的自然语言方向。有了这个,您可以自己设置对齐。

代码语言:javascript
运行
复制
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!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32245986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档