2011-05-05 47 views

回答

0

为包含小图片的第一个webview实现UIWebViewDelegate协议方法shouldStartLoadWithRequest

当用户点击您的图片时,您需要拦截此事件并决定要做什么以及如何执行。

当您在webview中触发某种交互时(例如被点击的链接),将调用shouldStartLoadWithRequest方法。有关更多详细信息,请参阅UIWebView documentation。 shouldStartLoadWithRequest必须返回一个BOOL来表明它应该继续执行用户执行的操作(返回YES)或不返回(返回NO)。

现在你知道一个链接已被点击,你必须确保它是一个图像。这是通过评估请求参数传回的url完成的。在这个例子中,我构造了一个方法clickedOnImageWithUrl,如果点击了一个图像,它将返回YES。但是,我不知道嵌入链接的小图像看起来像我无法提供有关该方法的更多细节。如果它返回YES,您可以显示新的webView。

然后代码看起来是这样的拦截点击链接:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)aRequest navigationType:(UIWebViewNavigationType)navigationType 
{ 
    if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
     // check if user clicked on your image...clickedOnImageWithUrl is made up 
     if([self clickedOnImageWithUrl:[aRequest url]]) { 

      // push new webview with image ... 

      return NO; 
     }    
    } 

    return YES; 
} 
+0

你能澄清更多...请问?意味着我可以如何推动新的webview与此网址? – Yogi 2011-05-06 05:58:04

+0

@Yogi更新了我的答案。 – 2011-05-06 06:09:12

+0

@Nick是的我知道委托方法。但我的情况有些不同。我有一个视图只包含一个webView.I创建此视图的对象,并将它们添加到不同的视图控制器上的滚动视图。我用不同的内容加载了我的webView的每个对象,并且它们现在是可滚动的。我的图标图像位于这些网页中,当用户点击该图像时,我想以不同的视图显示该图像。如何才能做到这一点?谢谢直到现在给你的帮助.... – Yogi 2011-05-06 06:55:22

0

@Yogi:你想对你什么时候在显示图像一个UIWebView的顶部的表视图为什么另一个webView。我想只有一个WebView就足够了。顺便说一下,您可以通过为图像的细节或甚至包含图像的url的数组提供字典来实现所需的内容。而在的UITableViewDelegate方法

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 

您可以通过使用indexpath到可以打开网址查看图像的网页视图图像的URL。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
// Get the url for the image here 
NSUrlRequest *urlRequest = [NSUrlRequest requestWithURL:urImageUrl]; 
[urWebView loadRequest:urlRequest]; 
} 
+0

哦,我没有任何表格视图。我想要显示的图像是表格。所以没有表格视图..... – Yogi 2011-05-06 07:05:35

相关问题