我在放置子视图时出现了问题,该视图与我的视图距离后端的百分比距离。它在正常的从左到右的语言(如英语)中工作良好,但是当我本地化为从右到左的语言(如阿拉伯语或希伯来语)时,约束似乎为零,并直接针对后端(在这种情况下是左侧)。我创建了一个最小的测试项目,并能够在那里重现问题。从右到左语言的Autolayout基于百分比的放置
我所有的视图都是在xib文件中设置的,而不是在storyboard中。
我用xib创建了一个ViewController。然后我把一个固定大小的50×50子视图,并把它放在一个固定的100,从顶部,然后后缘80%的上海华的尾部,如在此屏幕截图:
刚刚好测量,并确保它翻转视图,我添加了一个完全独立于其他子视图的标签。当我用英语运行它,一切看起来不错:
然而,在改变设备的语言为阿拉伯语,标签正确反映,但它似乎忘了结尾约束的百分比,只是看到不断为0,这会导致子视图直接放置在视图的一侧。
有谁知道我需要如何修改我的约束,以使设备记住基于百分比的约束后缘在RTL语言?
您所选约束的常量似乎为'0'...您是否尝试将此更新为非零值并查看LTR和RTL语言的结果? – wakachamo
@wakachamo常量不是问题。问题似乎是坐标系不会随约束条件一起翻转。这意味着“80%的右边缘”约束(例如320的80%)被翻转并且现在是“左边缘的80%”约束(例如0的80%)。 – Stonz2
正确。坐标系不翻转,并且320的x位置仍然以右至左语言朝向屏幕的右边缘。我不确定这里可以做些什么,除了将你的约束改写成不依赖于绝对位置百分比的集合...... – wakachamo