我在我的 View 中放置一个 subview 时遇到问题,该 subview 与后缘有一定的距离。它在常规的从左到右的语言(例如英语)中工作正常,但是当我本地化为从右到左的语言(例如阿拉伯语或希伯来语)时,约束似乎归零并直接对接后缘(在这种情况下为左侧)。我创建了一个最小的测试项目,并且能够在那里重现该问题。
我所有的 View 都是在 xib 文件中设置的,而不是在 Storyboard中。
我用 xib 创建了一个 ViewController。然后我放入一个固定大小的 50x50 subview 并将其放置在距顶部固定 100 的位置,然后将后缘 80% 放置在父 View 的尾部,如屏幕截图所示:
为了更好地衡量并确保翻转 View ,我添加了一个完全独立于其他 subview 的标签。当我用英语运行它时,一切看起来都很棒:
但是,将设备的语言更改为阿拉伯语后,标签会正确镜像,但似乎忘记了尾随约束的百分比,只看到常量 0,这导致 subview 直接放置在 View 的一侧.
有谁知道我需要如何修改我的约束才能让设备记住 RTL 语言中基于百分比的后缘约束?
最佳答案
如果您的目标是 iOS 9 或更高版本,则可以使用布局指南 (UILayoutGuide
) 来设置间距。基本上,让 View 的后缘紧靠布局指南的前缘,布局指南的后缘紧靠父 View 的后缘,布局指南的宽度等于父 View 宽度的 20%。
在 iOS 9 之前,您可以使用隐藏的虚拟 View 而不是布局指南。
关于ios - 从右到左语言中基于百分比的自动布局布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33699464/