我正在开发一个iPhone应用程序,其中有大表在Web视图上显示。我打算在实际桌子的位置给出一个小图像,当用户点击它时,实际图像将在另一个webView中打开。我正在寻找正确的方向。请帮忙。
答案 0 :(得分:0)
为包含小图片的第一个webview实施UIWebViewDelegate协议方法shouldStartLoadWithRequest
。
当用户点击您的图片时,您需要拦截此事件并决定做什么以及如何做。
在您的webview中触发某种交互时调用shouldStartLoadWithRequest方法,例如点击链接。有关更多详细信息,请参阅UIWebView documentation。 shouldStartLoadWithRequest必须返回一个BOOL以指示webview应该继续进行用户执行的操作(返回YES)或不返回(返回NO)。
现在您知道已点击链接,您必须确保它已成为图像。这是通过评估request参数传回的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;
}
答案 1 :(得分:0)
@Yogi:当你要在另一个webView中显示图像时,为什么要在UIWebView上有一个表视图。我想只需一个WebView即可。顺便说一句,你可以通过为图像的细节提供字典或甚至包含图像的URL的数组来实现你想要的。并在UITableViewDelegate方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
您可以使用索引路径将图像的网址传递到网页视图,该网页视图可以打开网址查看图片。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Get the url for the image here
NSUrlRequest *urlRequest = [NSUrlRequest requestWithURL:urImageUrl];
[urWebView loadRequest:urlRequest];
}