forceRightToLeft 时 UISwitch 太慢

UISwitch too slow when forceRightToLeft

我的应用程序使用英语和阿拉伯语。
我的 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!

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

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

中完成
mySwitch.semanticContentAttribute = .forceLeftToRight

On还是On,Off还是Off,一切正常,UISwitch在屏幕的左侧,因为阿拉伯语时整个屏幕都被迫离开,那也可以。现在唯一的区别是 On 状态在您向左滑动开关时处于活动状态(如英语),而不是向右滑动。但这几乎是不知不觉的,none 注意到“hack”:)

如果有人更喜欢使用情节提要来减少代码,只需更改 Switch 的属性检查器中的语义 属性(或任何视图,因为它是 UIView 属性)