如果没有在 Swift 中加载 URL,如何使 WKWebView 不可滚动?
Posted
技术标签:
【中文标题】如果没有在 Swift 中加载 URL,如何使 WKWebView 不可滚动?【英文标题】:How to make WKWebView not scrollable without a URL loaded in Swift? 【发布时间】:2015-05-03 19:37:19 【问题描述】:当我启动浏览器应用程序时,它会显示地址栏和 WKWebView
,但没有加载 URL。
由于没有 URL,视图不应该是可滚动的,但它是。
【问题讨论】:
【参考方案1】:您可以在 viewdidload 中执行以下操作:
webView.loadRequest(NSURLRequest(URL: NSURL(string: "about:blank")!))
编辑
@interface ViewController () <WKNavigationDelegate>
...
- (void)viewDidLoad
[super viewDidLoad];
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds];
webView.navigationDelegate = self;
webView.scrollView.scrollEnabled = NO;
[self.view addSubview:webView];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.de"]]];
);
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
NSLog(@"%s", __PRETTY_FUNCTION__);
webView.scrollView.scrollEnabled = (webView.URL != nil);
【讨论】:
嗨 Andre,感谢您的回答 :) 但是,我不能使用此解决方案,因为它只会在每次加载视图时加载 about:blank(即使我切换到设置或书签视图)这对我的应用程序来说是有问题的。我认为可以提供一个不错的解决方案,但不知道是否有一个功能可以在没有加载 URL 时禁用滚动。你知道怎么做这样的事情吗?谢谢:) 我尝试了您的新编辑,并在 viewDidLoad 上使用webView.scrollView.scrollEnabled = (webView.URL != nil);
成功了 :) 非常感谢安德烈! :)以上是关于如果没有在 Swift 中加载 URL,如何使 WKWebView 不可滚动?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 WKWebVIew 或 JSC 在 iOS 应用程序中加载 WebAssembly