【问题标题】:iOS ObjectiveC: Support Right To LeftiOS 目标 C:支持从右到左
【发布时间】:2019-05-25 19:10:17
【问题描述】:

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

[[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);

它可以工作,但是如果我推送另一个视图并在我弹出到带有集合视图的视图后,它会再次向左对齐,直到我点击部分标题,点击后它向右。

【问题讨论】:

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


    【解决方案1】:

    根据 Apple 的文档,

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

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

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

    更多详情请参考Supporting Right-to-Left Languages

    【讨论】:

    • 这就是我所做的,但它不适用于这个视图。 !Video.
    猜你喜欢
    • 2019-04-24
    • 1970-01-01
    • 2012-12-21
    • 2011-03-18
    • 2013-07-05
    • 2019-04-07
    • 2011-09-19
    • 2016-04-26
    • 1970-01-01
    相关资源
    最近更新 更多