1

我的应用程序使用英语和阿拉伯语。
我的 AppDelegate 中有这个:

if isArabic {
    UIView.appearance().semanticContentAttribute = .forceRightToLeft
}

当 时Arabic(forces elements to go right-to-left),所有 UI 元素似乎都可以正常工作,除了UISwiftch.
它可以工作,但速度太慢,它会切换,然后在一两秒后它会根据ON/OFF State. 除了这个之外,没有更多的 UISwitch 代码:

@IBOutlet weak var mySwitch: UISwitch!

,所以我不知道是什么导致了这个奇怪的问题。

4

2 回答 2

2

修复我发现:即使整个应用程序在阿拉伯语上强制从右到左,我也会强制我的 UISwitch 从左到右。你可以在viewDidLoad

mySwitch.semanticContentAttribute = .forceLeftToRight

On 仍然是 On,Off 仍然是 Off,一切正常,UISwitch 在屏幕左侧,因为阿拉伯语时整个屏幕被强制离开,这也很好。现在唯一的区别是,On当您向左滑动切换时(如英语),状态处于活动状态,而不是向右。但这几乎是无意识的,没有人注意到“黑客”:)

于 2020-11-17T12:33:50.650 回答
0

如果有人更喜欢使用故事板进行无代码,只需更改 Switch 的属性检查器中的语义属性(或任何视图,因为它是 UIView 属性)

在此处输入图像描述

于 2021-09-29T11:34:23.370 回答