【发布时间】:2015-12-16 16:43:38
【问题描述】:
我正在UIWebview 中加载 pdf(具有多个超链接)文档。我必须通过超链接动态显示UIPopover。
我可以使用 TapGesture Action 方法捕获超链接的坐标
- (void)tapAction:(UITapGestureRecognizer *)sender
{
self.point = [sender locationInView:self.myWebView];
}
并使用以下方法通过超链接呈现UIPopover
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *rqstUrl = [request URL];
if (([[rqstUrl scheme] isEqualToString: @"https"] || [[rqstUrl scheme] isEqualToString: @"http"]) && (navigationType == UIWebViewNavigationTypeLinkClicked))
{
[self.myWebView stopLoading];
CGRect rect = CGRectMake(self.point.x,self.point.y-5, 5, 5);
UIPopoverController *popController = [[UIPopoverController alloc] initWithContentViewController:contentViewController];
popController.popoverContentSize = CGSizeMake(500, 200);
self.popController = popController;
self.popController.delegate =self;
UIPopoverArrowDirection direction = UIPopoverArrowDirectionUp|UIPopoverArrowDirectionDown;
self.popController.popoverLayoutMargins = UIEdgeInsetsMake(0, rect.origin.x, 1, 1);
[self.popController presentPopoverFromRect:rect inView:webView permittedArrowDirections:direction animated:YES];
}
return YES;
}
但问题是,如果我在 1 秒或 2 秒内点击了两个不同的位置,比如第一次点击是 在超链接,第二次点击是在“UIWebview 的其他地方”,UIPopover 是仅在第二个点击位置呈现,而不是在超链接位置呈现。
我必须仅根据超链接位置显示UIPopover,而不是在其他位置。我该如何解决这个问题?
【问题讨论】:
标签: objective-c xcode uiwebview uipopovercontroller uitapgesturerecognizer