所以我试着在scrollView中显示一堆文本,但在没有显示的情况下显示到底部(它们的大小和tableView行一样).
这是我的代码:
struct TestView: View {
@ObservedObject var viewModel: ViewModel
@State private var contentSize: CGSize = .zero
var body: some View {
ZStack {
ScrollView {
VStack {
Image(viewModel.image).resizable()
.scaledToFit()
.overlay(
Button(action: {
print(">> Trash Tapped")
//viewModel.dismiss
}) {
Image("closeBtn")
}.padding(.top, 30)
.padding(.trailing, 16),
alignment: .topTrailing
)
.padding(.bottom, 40)
Text(viewModel.firstText)
.padding(.trailing, 30)
.padding(.leading, 30)
.padding(.bottom, 40)
.multilineTextAlignment(.trailing)
.font(viewModel.firstFont)
.foregroundColor(viewModel.firstColor)
.lineLimit(nil)
Text(viewModel.secondText)
.padding(.trailing, 30)
.padding(.leading, 30)
.padding(.bottom, 5)
.multilineTextAlignment(.trailing)
.font(viewModel.secondFont)
.foregroundColor(viewModel.secondColor)
.lineLimit(nil)
Text(viewModel.thirdText)
.padding(.trailing, 30)
.padding(.leading, 30)
.padding(.bottom, 40)
.multilineTextAlignment(.trailing)
.font(viewModel.thirdFont)
.foregroundColor(viewModel.thirdColor)
.lineLimit(nil)
Text(viewModel.fourthText)
.padding(.trailing, 30)
.padding(.leading, 30)
.padding(.bottom, 5)
.multilineTextAlignment(.trailing)
.font(viewModel.fourthFont)
.foregroundColor(viewModel.fourthColor)
.lineLimit(nil)
Text(viewModel.fifthText)
.padding(.trailing, 30)
.padding(.leading, 30)
.padding(.bottom, 40)
.multilineTextAlignment(.trailing)
.font(viewModel.fifthFont)
.foregroundColor(viewModel.fifthColor)
.lineLimit(nil)
Text(viewModel.sixText)
.padding(.trailing, 22)
.padding(.leading, 22)
.padding(.bottom, 30)
.multilineTextAlignment(.trailing)
.font(viewModel.sixFont)
.foregroundColor(viewModel.sixColor)
.lineLimit(nil)
Text(viewModel.sixText)
.padding(.trailing, 22)
.padding(.leading, 22)
.padding(.bottom, 30)
.multilineTextAlignment(.trailing)
.font(viewModel.sixFont)
.foregroundColor(viewModel.sixColor)
.lineLimit(nil)
}
Spacer()
}
.edgesIgnoringSafeArea(.all)
}
.navigationBarHidden(true)
}
}
这是我的虚拟机:
final class ViewModel: ObservableObject, CryptoPopUpScreen {
var firstFont: Font
var firstColor: Color
var secondFont: Font
var secondColor: Color
var thirdFont: Font
var thirdColor: Color
var fourthFont: Font
var fourthColor: Color
var fifthFont: Font
var fifthColor: Color
var sixFont: Font
var sixColor: Color
var firstText: String
var secondText: String
var thirdText: String
var fourthText: String
var fifthText: String
var sixText: String
lazy var image = "cryptoPilot"
init() {
firstText = L10n.cryptoPilotTitle
firstColor = Color(ColorName.black)
firstFont = Font(UIFont(name: "Orion-Regular", size: 14)!)
secondText = L10n.cryptoPilotFirstTextTitle
secondColor = Color(ColorName.black)
secondFont = Font(UIFont(name: "Orion-Bold", size: 14)!)
thirdText = L10n.cryptoPilotFirstText
thirdColor = Color(ColorName.black)
thirdFont = Font(UIFont(name: "Orion-Regular", size: 14)!)
fourthText = L10n.cryptoPilotSecondTextTitle
fourthColor = Color(ColorName.black)
fourthFont = Font(UIFont(name: "Orion-Bold", size: 14)!)
fifthText = L10n.cryptoPilotSecondText
fifthColor = Color(ColorName.black)
fifthFont = Font(UIFont(name: "Orion-Regular", size: 14)!)
sixText = L10n.cryptoPilotInfo
sixColor = Color(ColorName.mushroom)
sixFont = Font(UIFont(name: "Orion-Regular", size: 1)!)
}
在这些图像中,我们可以看到文本的高度与它假设的高度不同.
在一个辅助项目中,我设法做到了正确.