为了在我的应用程序上支持从右到左,我正在使用以下说明:

[[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];

[[UIStackView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];

[UITextView appearance].textAlignment = NSTextAlignmentRight;

但是我有很多问题:
-如果需要在当前视图中应用新的对齐方式,我不知道如何刷新UI。
-在集合视图中,即使我使用,对齐方式也不会改变:
[[UICollectionView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];

所以我决定使用:
self.sectionsCollectionView.transform = CGAffineTransformMakeScale(-1, 1);

和:
cell.transform = CGAffineTransformMakeScale(-1, 1);

它可以工作,但是如果我推另一个视图,然后在使用集合视图弹出视图之后,它再次向左对齐,直到我点击节头,然后点击右边。

最佳答案

根据Apple的文档,

默认情况下,iOS中的文本对齐是自然的;在OS X中,它保留了。
使用自然文本对齐方式将文本左对齐
从左到右的语言,并自动镜像对齐
从右到左的语言。例如,如果您设置了
使用setAlignment:方法的NSMutableParagraphStyle对象,传递
NSNaturalTextAlignment作为参数。

[[(NSMutableParagraphStyle *)paraStyle setAlignment:NSNaturalTextAlignment];

但是,如果您想将控件向右对齐,
从左到右的语言(以从右到左的语言向左),
获取布局方向,如获取布局中所述
方向,并将对齐方式设置为NSLeftTextAlignment 从右到左的语言。

有关更多详细信息,请参考Supporting Right-to-Left Languages

关于ios - iOS objective-c :从右到左支持,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53950394/

10-09 03:37