UIToolbar 强制从左到右语义不起作用

问题描述 投票:0回答:1

我有一个 UIListView 控制器,底部有一个 UIToolbar,有 3 个按钮。像这样:

现在,我试图让我的应用程序支持其他语言,当我将 iPhone 模拟器的语言更改为某种从右到左的语言时,工具栏显示如下:

似乎第二天按钮与前一天按钮正在切换。因为当我按下左侧按钮时,会将日期向前更改一天。我当然不希望这样,任何人都可以帮我解决这个问题。

这是我迄今为止尝试解决此问题的方法:

我尝试将 UIToolbar 的语义更改为“强制从左到右” 我尝试对工具栏所在的所有视图执行相同的操作,但没有成功。 我什至尝试像这样以编程方式更改语义:

toolbar.semanticContentAttribute = .forceLeftToRight 

目前,我不知道如何解决这个问题,感谢任何帮助!

ios swift xcode storyboard
1个回答
0
投票

保持三角形指向正确方向的最简单方法是选择正确的图像。

您很可能为左箭头选择了图像“arrowtriangle.backward.fill”。相反,选择“arrowtriangle.left.fill”。前者指向左或右,具体取决于用户的区域设置。后者总是指向左。

对于右箭头,出于同样的原因,选择“arrowtriangle.right.fill”而不是“arrowtriangle.forward.fill”。

您可以在最新版本的 SF Symbols 应用程序中看到一些图标的本地化。


需要注意的是,您可能需要根据用户的区域设置交换每个按钮的操作。在 LTR 区域设置中,左侧按钮应该返回。但在 RTL 语言环境中,左侧按钮应该前进。该逻辑需要位于两个工具栏项处理程序的代码中。

© www.soinside.com 2019 - 2024. All rights reserved.