WkWebView 在 SwiftUI 中有空格出现在它后面
WkWebView has spacing appear after it in SwiftUI
我遇到一个问题,在我的 WKWebView 内容之后出现一个空格(图片包含在最底部)。我正在展示来自 Facebook 的几个直播流的分组,但这个问题不断出现。我没有在 Whosebug 或其他网站上找到任何解决方案。我的网络视图也正在缩放以适合主视图。这也是在 SwiftUI 中完成的,我尝试添加一个偏移量,但随后如预期的那样在视图底部添加了一个长空 space 。感谢任何可能的帮助,因为我不确定这是什么原因,而且我不确定这是 Facebook 问题还是我正在做的事情。谢谢。
这是我的主体视图中显示网络视图的代码:
ScrollView {
HStack {
Text("Most Recent Livestream")
.font(.title)
.padding([.top, .leading])
Spacer()
}
VStack {
if (self.fb.showWebViews != false) {
fb.getwebView(index: 0).scaledToFit()
}
}
VStack {
if (self.fb.showWebViews != false) {
Text("\(fb.getVideoDate(index: 1))")
fb.getwebView(index: 1).scaledToFit()
}
}
VStack {
if (self.fb.showWebViews != false) {
Text("\(fb.getVideoDate(index: 2))")
fb.getwebView(index: 2).scaledToFit()
}
}
VStack {
if (self.fb.showWebViews != false) {
Text("\(fb.getVideoDate(index: 3))")
fb.getwebView(index: 3).scaledToFit()
}
}
VStack {
if (self.fb.showWebViews != false) {
Text("\(fb.getVideoDate(index: 4))")
fb.getwebView(index: 4).scaledToFit()
}
}
Button(action: {
print("LEARN MORE!")
}) {
Image(systemName: "questionmark.circle")
Text("Want to view more livestreams?")
.foregroundColor(Color(.label))
}.padding([.top, .leading])
Spacer()
}
这是网页视图代码:
struct WebView2 : UIViewRepresentable {
// Instence Var of request URL
var request: URLRequest
// Creates the UIView of the WebView
func makeUIView(context: Context) -> WKWebView {
return WKWebView()
}
// Updates the Webview
/// With disable scrolling, backround becomes opaue, and reloads page with the quested URL
func updateUIView(_ uiView: WKWebView, context: Context) {
uiView.scrollView.isScrollEnabled = false
uiView.isOpaque = false
uiView.load(request)
}
}
这是一张带有间距的图片:
事实证明,为了解决这个问题,我所要做的就是删除 VStacks 中每个 WebView 上的 .scaledToFit()
。然后在删除它们之后,我不得不将 .frame(height: 233)
放在 VStacks 中的每个 WebView 上,以便完全显示所有内容,因为它们的高度始终为 233。
我遇到一个问题,在我的 WKWebView 内容之后出现一个空格(图片包含在最底部)。我正在展示来自 Facebook 的几个直播流的分组,但这个问题不断出现。我没有在 Whosebug 或其他网站上找到任何解决方案。我的网络视图也正在缩放以适合主视图。这也是在 SwiftUI 中完成的,我尝试添加一个偏移量,但随后如预期的那样在视图底部添加了一个长空 space 。感谢任何可能的帮助,因为我不确定这是什么原因,而且我不确定这是 Facebook 问题还是我正在做的事情。谢谢。
这是我的主体视图中显示网络视图的代码:
ScrollView {
HStack {
Text("Most Recent Livestream")
.font(.title)
.padding([.top, .leading])
Spacer()
}
VStack {
if (self.fb.showWebViews != false) {
fb.getwebView(index: 0).scaledToFit()
}
}
VStack {
if (self.fb.showWebViews != false) {
Text("\(fb.getVideoDate(index: 1))")
fb.getwebView(index: 1).scaledToFit()
}
}
VStack {
if (self.fb.showWebViews != false) {
Text("\(fb.getVideoDate(index: 2))")
fb.getwebView(index: 2).scaledToFit()
}
}
VStack {
if (self.fb.showWebViews != false) {
Text("\(fb.getVideoDate(index: 3))")
fb.getwebView(index: 3).scaledToFit()
}
}
VStack {
if (self.fb.showWebViews != false) {
Text("\(fb.getVideoDate(index: 4))")
fb.getwebView(index: 4).scaledToFit()
}
}
Button(action: {
print("LEARN MORE!")
}) {
Image(systemName: "questionmark.circle")
Text("Want to view more livestreams?")
.foregroundColor(Color(.label))
}.padding([.top, .leading])
Spacer()
}
这是网页视图代码:
struct WebView2 : UIViewRepresentable {
// Instence Var of request URL
var request: URLRequest
// Creates the UIView of the WebView
func makeUIView(context: Context) -> WKWebView {
return WKWebView()
}
// Updates the Webview
/// With disable scrolling, backround becomes opaue, and reloads page with the quested URL
func updateUIView(_ uiView: WKWebView, context: Context) {
uiView.scrollView.isScrollEnabled = false
uiView.isOpaque = false
uiView.load(request)
}
}
这是一张带有间距的图片:
事实证明,为了解决这个问题,我所要做的就是删除 VStacks 中每个 WebView 上的 .scaledToFit()
。然后在删除它们之后,我不得不将 .frame(height: 233)
放在 VStacks 中的每个 WebView 上,以便完全显示所有内容,因为它们的高度始终为 233。