【问题标题】:SwiftUI:布局更改为从右到左后,Spacer 不会将内容推到一边
【发布时间】:2022-01-23 12:49:30
【问题描述】:

我通过添加.environment(...) 将应用程序的布局从左到右更改为从右到左,如下所示:

struct RegisterView_Previews: PreviewProvider {
static var previews: some View {
    Group {
        RegisterView(showReg: .constant(true))
            .preferredColorScheme(.light)
            .environment(\.layoutDirection, .rightToLeft)
       }
    }
 }

但是,Spacer() 并没有按预期工作:它没有像以前那样将 HStack 的内容推送到相反的两侧。在下面的屏幕截图中,您可以看到form 中的所有条目都被推到了相反的两侧,除了前一个。如果您查看代码,该条目对应于第二个HStack(其中包含text: $stock 的那个)。唯一的区别是TextFieldText 的顺序:当TextFieldText 之前时,Spacer() 表现为一个空格。

【问题讨论】:

  • 按设计工作。 TextField 占用所有可用空间。如果您想将其限制为某个宽度,请明确给出。

标签: ios xcode swiftui


【解决方案1】:

我在这个帖子上找到了解决方案:

Can't seem to utilize Spacer() between text() and textfield()

我刚刚将.fixedSize() 修饰符添加到TextField,这会阻止TextField 获得优先权。

【讨论】:

    猜你喜欢
    • 2011-05-10
    • 2019-11-16
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2020-02-07
    • 1970-01-01
    • 2014-09-02
    相关资源
    最近更新 更多