Swift 我如何才能创建一个;“未填充框架”;在迅捷?
我确信这是一件非常简单的事情,但我似乎无法理解。我试图创建一个“小部件”,它由三行垂直堆叠的文本组成。该信息应放在“框架”或“边框”内,使其类似于卡片。将有一排这样的卡片水平滚动 信不信由你,我唯一搞不清楚的是如何在小部件周围绘制边框。我试过了,边界,但是边界正好紧靠文本。我知道我可以添加填充,但我真正需要的是一个固定大小的卡片,这样滚动列表中的每个元素都是相同的 我最接近这个:Swift 我如何才能创建一个;“未填充框架”;在迅捷?,swift,xcode,swiftui,Swift,Xcode,Swiftui,我确信这是一件非常简单的事情,但我似乎无法理解。我试图创建一个“小部件”,它由三行垂直堆叠的文本组成。该信息应放在“框架”或“边框”内,使其类似于卡片。将有一排这样的卡片水平滚动 信不信由你,我唯一搞不清楚的是如何在小部件周围绘制边框。我试过了,边界,但是边界正好紧靠文本。我知道我可以添加填充,但我真正需要的是一个固定大小的卡片,这样滚动列表中的每个元素都是相同的 我最接近这个: .frame(width: geometry.size.width/1.3, height: 200) .backg
.frame(width: geometry.size.width/1.3, height: 200)
.background(Color.white)
.border(Color.blue)
.cornerRadius(20)
……但所有的角落都被剪掉了。以下是完整的代码列表供参考:
struct AccountTile: View {
var body: some View {
GeometryReader { geometry in
VStack(alignment: .leading, spacing: 8) {
Text("Account Balance").font(.largeTitle)
Text("Account Name").font(.headline)
HStack(spacing: 0) {
Text("There are ").font(.caption).foregroundColor(.gray)
Text("6 ").font(.caption).fontWeight(.bold).foregroundColor(.blue)
Text("unreconciled transactions.").font(.caption).foregroundColor(.gray)
}
}
.frame(width: geometry.size.width/1.3, height: 200)
.background(Color.white)
.border(Color.blue)
.cornerRadius(20)
}
}
}
…下面是该代码产生的结果:
这几乎就是我要找的-我只需要完整的边框。使用一些填充并创建边框。下面是代码(:
使用一些填充和创建边框。以下是代码(:
我正在尝试使用GeometryReader使框架具有与屏幕大小相关的特定宽度;这将如何与您的解决方案相适应?填充不只是使文本视图变大一点,而不使其成为固定大小吗?是的,您可以在框架上实现相同的结果,我添加填充只是为了在两个视图之间创建一些空间e border。我将更新我的答案。我正在尝试使用GeometryReader使框架具有与屏幕大小相关的特定宽度;这将如何与您的解决方案相适应?填充不只是使文本视图变大一点,而不使其成为固定大小吗?是的,您可以使用框架获得相同的结果,我添加了填充st在边界之间创建一些空间。我将更新我的答案。
struct AccountTile: View {
var body: some View {
GeometryReader { geometry in
VStack(alignment: .leading, spacing: 8) {
Text("Account Balance").font(.largeTitle)
Text("Account Name").font(.headline)
HStack(spacing: 0) {
Text("There are ").font(.caption).foregroundColor(.gray)
Text("6 ").font(.caption).fontWeight(.bold).foregroundColor(.blue)
Text("unreconciled transactions.").font(.caption).foregroundColor(.gray)
}
}.frame(width: geometry.size.width/1.3, height: 200)
.background(Color.white)
.overlay(
RoundedRectangle(cornerRadius: 20)
.stroke(Color.blue, lineWidth: 2))
}
}
}