SwiftUI 中 ScrollView 布局方向如何从右到左?

Saj*_*jad 4 ios swift swiftui xcode11

我们如何在 swiftUI 的 Horizo​​ntal ScrollView 中设置从右到左的布局方向?

像这样:

ScrollView(showsHorizontalIndicator: false) {
    HStack {
        VStack {
            Image("1")
            Text("one")
        }
        VStack {
            Image("2")
            Text("two")
        }
        VStack {
            Image("3")
            Text("three")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以当模拟器运行时,我想Image("1")在右手边看到并向右滑动可以访问Image("3")

FRI*_*DAY 6

您可以view通过提供view以下修饰符从右到左制作任何您想要的东西:

.flipsForRightToLeftLayoutDirection(true)
.environment(\.layoutDirection, .rightToLeft)
Run Code Online (Sandbox Code Playgroud)

在你的情况下,它会是这样的:

ScrollView(showsHorizontalIndicator: false) {
    HStack {
        VStack {
            Image("1")
            Text("one")
        }
        VStack {
            Image("2")
            Text("two")
        }
        VStack {
            Image("3")
            Text("three")
        }
    }
}
.flipsForRightToLeftLayoutDirection(true)
.environment(\.layoutDirection, .rightToLeft)
Run Code Online (Sandbox Code Playgroud)

好运达达什 ;)

  • 谢谢!但是当我在文本中使用波斯语(rtl 语言)字符时,我的文本已镜像! (6认同)
  • 为其他人澄清上述内容: .environment(.layoutDirection, .rightToLeft) *强制*发生从右到左的布局,即使在 L2R 语言环境中也是如此。翻转修饰符使视图服从环境。 (2认同)