iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocoa-touch – iPad UIWebView在href链接坐标上定位UIPopoverController视图大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望这个问题不是一个愚蠢的问题,但是如何在UIWebView上定位UIPopoverController视图,以便弹出视图箭头指向被点击以显示它的UIWebView链接

我正在使用委托方法;

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithrequest:(NSURLrequest *)inrequest navigationType:(UIWebViewNavigationTypE)inType {
if ( [[[inrequest URL] absoluteString] hasPrefix:@"myscheR_650_11845@e:"] ) {
//UIPopoverController stuff here
return NO;
}

}

捕获和路由点击但我不确定如何获得链接坐标定位弹出视图.

任何帮助或指向相关信息的指针都将非常感激.

解决方法

我有一个有效的解决方案,但我认为有更好的方法.

我创建了一个从UIWebView继承的TouchableWebView,并在方法hitTest中保存触摸位置.之后,您需要为webview设置委托并实现方法-webView:shouldStartLoadWithrequest:navigationType:

TouchableWebView.h:

@interface TouchableWebView : UIWebView {
CGPoint lastTouchPosition;
}
@property (nonatomic,assign) CGPoint lastTouchPosition;

TouchableWebView.m:

// I need to retrieve the touch position in order to position the popover
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    self.lastTouchPosition = point;
    return [super hitTest:point withEvent:event];
}

在RootViewController.m中:

[self.touchableWebView setDelegate:self];

// WebView delegate,when hyperlink clicked
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithrequest:(NSURLrequest *)request     navigationType:(UIWebViewNavigationTypE)navigationType {

    if (navigationType == UIWebViewNavigationTypeLinkClicked) 
    {   
        CGPoint touchPosition = [self.view convertPoint:self.touchableWebView.lastTouchPosition fromView:self.touchableWebView];
        [self displayPopOver:request atPosition:touchPosition isOnCelebrityFrame:falSE];
        return falSE;
    }

    return TRUE;
}

这不好,因为UIWebView的文档说你不应该继承它.我想有一个更好的方法,但这确实有效.你找到了另一种解决方案吗

大佬总结

以上是大佬教程为你收集整理的cocoa-touch – iPad UIWebView在href链接坐标上定位UIPopoverController视图全部内容,希望文章能够帮你解决cocoa-touch – iPad UIWebView在href链接坐标上定位UIPopoverController视图所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。