Nic*_*ard 6 iphone uiwebview ios
我很确定我理解如何使用webView:shouldStartLoadWithRequest:navigationType:方法点击UIWebView,但我的webView甚至不允许我点击链接.我在用:
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(12, top, boundsSize.width - 40.0, 400.0f)];
webView.delegate = self;
webView.backgroundColor = [UIColor clearColor];
webView.opaque = NO;
webView.allowsInlineMediaPlayback = YES;
webView.dataDetectorTypes = UIDataDetectorTypeAll;
// add to subview
Run Code Online (Sandbox Code Playgroud)
我正在加载HTML字符串而不是加载URL:
[webView loadHTMLString:bodyHTML baseURL:nil];
Run Code Online (Sandbox Code Playgroud)
代表方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"Loaded");
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSURL *url = request.URL;
NSString *urlString = url.absoluteString;
NSLog(urlString);
}
return YES;
}//end
Run Code Online (Sandbox Code Playgroud)
每次我的webview加载时我都会在我的日志中获得"加载",所以我知道委托方法被调用了.但我永远不能点击我的UIWebView中的链接并发生任何事情.它甚至看起来不允许链接上的按下状态.链接突出显示为链接,只是不允许点击.
想法?
UIWebView 不响应触摸事件的原因很可能是这一行:
webView.opaque = NO;
尝试将不透明设置为YES。
hitTest:withEvent:我的理解是,对于响应触摸事件的视图,必须通过在事件传递机制执行的视图层次结构遍历期间调用来返回该视图。
从hitTest:withEvent: 文档中:
此方法会忽略隐藏的视图对象、禁用用户交互的视图对象或 Alpha 级别小于 0.01 的视图对象。
基于新信息:如果 UIWebView 嵌入 UIScrollView 中,请引用 Apple文档:
重要提示:您不应在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆并错误处理。