swift - 将 SwiftUI 视图设置为始终保持一种尺寸
问题描述
我认为我总是希望保持相同的尺寸,我没有让它响应不同的屏幕尺寸,因为它最终会转换为 PDF。如何将特定视图设置为始终保持大小,并且当我在工作表中显示它时,它将以相同的格式显示,只是按比例缩小?
这是我试图保持以下大小和纵横比的视图:
ScrollView(.vertical){
VStack(spacing: 0){
ForEach(processor.matchEvents){event in
if(event.team.home == true){
HomeArm(team: event.team, event: event) //Same as AwayArm, just changes text
}
else{
AwayArm(team: event.team, event: event)
}
}
}
}
struct AwayArm: View {
@ObservedObject var team: Team
var event: MatchEvent
var body: some View {
let mins: String = String(event.time)
ZStack {
Rectangle()
.frame(width: 5, height: 200)
HStack(spacing: 0){
Spacer()
Text("\(mins)'")
.font(.title)
.frame(width: 60, height: 60, alignment: .center)
.foregroundColor(team.teamTextColor)
.background(team.teamColor)
.clipShape(Circle())
.modifier(RoundedEdge(width: 5, color: .black, cornerRadius: 40))
Rectangle()
.frame(width: 80, height: 5)
VStack{
Text(event.event)
.font(.title)
Text("Event Details")
.font(.title2)
Text("\(event.player.shirtNumber) - \(event.player.playerName)")
.font(.title3)
}.padding()
.foregroundColor(.white)
.frame(width: 250, height: 150)
.background(LinearGradient(gradient: Gradient(colors: [Color(UIColor.lightGray), .gray]), startPoint: .top, endPoint: .bottom))
.cornerRadius(25)
.modifier(RoundedEdge(width: 5, color: .black, cornerRadius: 30))
}
.padding(.top)
.padding(.trailing, 35)
}
}
}
我希望它显示在工作表中,但保持正确的尺寸和纵横比:
HStack{
ScrollView(.vertical){
MatchReportView()
}
Text("")
}
任何关于始终保持相同大小的帮助,将不胜感激
解决方案
推荐阅读
- python - ValueError:无法将大小为 261715968 的数组重塑为形状 (9466,9216)
- hash - 块哈希生成的动态和添加到比特币交易中使用的块链
- django - / 'dict' 对象的 AttributeError 没有属性 '_mptt_meta'
- entity-framework-core - 多对多索引创建约定
- allennlp - 您可以编写自己的自定义 allennlp 命令吗?
- react-native - 如何在 Reanimated V2 中访问手势状态 UNDETERMINED?
- python-3.x - 使用类函数写入 .txt 文件时,换行符无法使用“\n”
- hybris - 更改 hybris 后台高级搜索中附加属性选择器的位置
- java - 如何使用aws java异步客户端耗尽所有结果
- objective-c - 当网络发生变化时,文件下载有时会从头开始(AFURLSessionManager)