首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >衬垫内部的SwiftUI框架?

衬垫内部的SwiftUI框架?
EN

Stack Overflow用户
提问于 2021-02-15 20:55:34
回答 1查看 1.3K关注 0票数 1

是否可以使用SwiftUI在此截图中填充左右文本?如果这是HTML,我会在CSS中使用padding-leftpadding-right。唉,SwiftUI需要一种不同的思维方式。

现在我已经有了这两个很好的框架,按照我想要的方式工作,在框架内移动文本的技术是什么。怎么能把“左”稍微推到右边,把它从左边的边缘移开,给它一些好的视觉空间呢?同样的技术也可以相反地应用于“右”文本。

代码语言:javascript
复制
GeometryReader { geometry in
  HStack(spacing: 0) {
    Text("Left")
      .frame(width: geometry.size.width * 0.33, height: 50, alignment: .leading)
      .background(Color.yellow)
    Text("Right")
      .frame(width: geometry.size.width * 0.67, height: 50, alignment: .trailing)
      .background(Color.orange)
  }
}
.padding()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-15 23:16:48

在SwiftUI中,修饰符的顺序很重要。请参见:

在下面的代码中,首先将.background(Color.yellow)应用于整个GeometryReader,然后将.padding()应用于整个GeometryReader。这意味着填充在Text("Left")之外。

代码语言:javascript
复制
GeometryReader { geometry in
  HStack(spacing: 0) {
    Text("Left")
      .frame(width: geometry.size.width * 0.33, height: 50, alignment: .leading)
      .background(Color.yellow)
    Text("Right")
      .frame(width: geometry.size.width * 0.67, height: 50, alignment: .trailing)
      .background(Color.orange)
  }
}
.padding()

您需要的是在padding视图之后添加Text

代码语言:javascript
复制
GeometryReader { geometry in
  HStack(spacing: 0) {
    Text("Left")
      .padding(.leading) // add here
      .frame(width: geometry.size.width * 0.33, height: 50, alignment: .leading)
      .background(Color.yellow)
    Text("Right")
      .padding(.trailing) // add here
      .frame(width: geometry.size.width * 0.67, height: 50, alignment: .trailing)
      .background(Color.orange)
  }
}
.padding()

请注意,您可以指定填充的方向(例如.padding(.trailing))以及偏移量。

代码语言:javascript
复制
.padding(.trailing, 10)

还请注意,您需要在frame之前添加填充-否则视图的总宽度将是:

代码语言:javascript
复制
0.33 * GeometryReader width + 0.67 * GeometryReader width + width of `.padding(.leading)` + width of `.padding(.trailing)`

它将超过GeometryReader返回的宽度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66215278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档