我学会了创建它HTMLStringView
以在我的应用程序中显示 html 字符串:
struct HTMLStringView: UIViewRepresentable {
let htmlContent: String
func makeUIView(context: Context) -> WKWebView {
return WKWebView()
}
func updateUIView(_ uiView: WKWebView, context: Context) {
uiView.loadHTMLString(htmlContent, baseURL: nil)
}
}
我发现它和它下面的任何视图height: 112
之间存在重叠。ZStack
因为zIndex = 1
,如果我想在HTMLStringView
下面显示ZStack
,我必须Rectangle
在两者之间放置高度为 112 的 a。如以下代码所示:
ScrollView{
VStack(spacing:0){
ZStack{
ZStack (alignment: .leading){
UrlImageView(urlString: thisItem.cover_img, imageWidth: self.expandedScreen_shown ? UIScreen.main.bounds.width : self.cardWidth, imageHeight: self.maxCardHeight)
}.offset(y: self.expandedScreen_shown ? 0 : 0)
.clipped()
.background(Color.white)
.foregroundColor(Color.green)
.edgesIgnoringSafeArea(.top)
VStack (alignment: .leading){
Spacer()
Text("\(thisItem.title)")
.font(.title)
.foregroundColor(Color.white)
.padding(.leading, 23)
.padding(.trailing, 23)
.padding(.top, 20)
.padding(.bottom, 10)
Text("\(thisItem.author) | \(thisItem.source)")
.font(.body)
.foregroundColor(Color.white)
.padding(.leading, 23)
.padding(.trailing, 23)
.padding(.bottom, 20)
}
}.frame(height: self.maxCardHeight * 0.5)
.zIndex(1)
Rectangle()
.fill(Color.white)
.frame(height: 112)
HTMLStringView(htmlContent: "<p>Hello World!</p>")
.padding()
.background(Color.white)
.frame(height: 300)
.border(Color.green)
}
我目前使用 iPhone 11 作为我的模拟器,当我切换到其他屏幕尺寸的模拟器时,重叠高度会发生变化。有谁知道为什么会有重叠?如果我无法摆脱它,它与屏幕尺寸的比例是多少?
提前致谢!