要在我的应用中支持从右到左,我正在使用以下说明:
[[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);
它可以工作,但是如果我推另一个视图,然后在使用集合视图弹出视图之后,它再次向左对齐,直到我点击节头,然后点击右边。
答案 0 :(得分:2)
根据Apple的文档,
默认情况下,iOS中的文本对齐是自然的;在OS X中,它保留了。 使用自然文本对齐方式将文本左对齐 从左到右的语言,并自动镜像对齐 从右到左的语言。例如,如果您设置了 使用setAlignment:方法的
NSMutableParagraphStyle
对象,NSNaturalTextAlignment
作为参数。
[[(NSMutableParagraphStyle *)paraStyle setAlignment:NSNaturalTextAlignment];
但是,如果您想将控件向右对齐, 从左到右的语言(从左到右从左到右的语言), 获取布局方向,如获取布局中所述 方向,然后将对齐方式设置为
NSLeftTextAlignment
从右到左的语言。
有关更多详细信息,请参阅Supporting Right-to-Left Languages