如何解决如何在 SwiftUI 列表行中具有相同的比例?
正如您在上面的屏幕截图中看到的,名称、游戏统计数据和照片之间的比例随着每一行而变化。
在我的 custom View 中使用了以下代码:
struct TopRow: View {
let model:Top
var body: some View {
HStack {
Text(model.given)
.font(.headline)
Spacer()
vstack {
Text("Elo rating: \(model.elo)")
Text("Average time: \(model.avg_time ?? "")")
Text("Average score: \(String(model.avg_score ?? 0.0))")
}
Spacer()
DownloadingImage(url: model.photo ?? "Todo")
.frame(width: 75,height: 75)
}
}
}
请问怎么改,让左边的名字有相同的宽度?
解决方法
如果所有列表行的中间内容大小都相同,则可以使用 .fixedSize
和框架。
var body: some View {
HStack {
Text(model.given)
.font(.headline)
.frame(minWidth: 0,maxWidth: .infinity) //<-- Here
Spacer()
VStack {
Text("Elo rating: \(model.elo)")
Text("Average time: \(model.avg_time ?? "")")
Text("Average score: \(String(model.avg_score ?? 0.0))")
}.fixedSize(horizontal: true,vertical: false) //<-- Here
Spacer()
DownloadingImage(url: model.photo ?? "TODO")
.frame(width: 75,height: 75)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。