【发布时间】:2017-05-18 15:37:49
【问题描述】:
我是IOS的初学者。我正在编写一个在 UIWebview 中显示网站的应用程序。现在我希望当用户按住图像时,他可以像在 safari 中一样保存图像。我的代码现在看起来像这样,但应用程序甚至无法识别按住手势:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
else if([request.URL.absoluteString containsString:@".png"]||[request.URL.absoluteString containsString:@".jpg"]){
self.lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPressGestures:)];
self.lpgr.minimumPressDuration = 1.0f;
self.lpgr.allowableMovement = 100.0f;
self.lpgr.delegate = self;
[self.webVIew addGestureRecognizer:self.lpgr];
return false;
}
return TRUE;
}
- (void)handleLongPressGestures:(UILongPressGestureRecognizer *)sender
{
NSLog(@"go within LongPressgesture methode");
if ([sender isEqual:self.lpgr]) {
if (sender.state == UIGestureRecognizerStateBegan)
{
NSLog(@"go within LongPressgesture methode2");
UIMenuItem* myBtn1 = [[UIMenuItem alloc] initWithTitle: @"Speichern" action:@selector( onButton1: )];
UIMenuController* mc = [UIMenuController sharedMenuController];
mc.menuItems = [NSArray arrayWithObjects: myBtn1, nil];
}
}
}
- (void) onButton1: (UIMenuController*) sender
{
UIGraphicsBeginImageContext(self.webVIew.frame.size);
[self.webVIew.layer renderInContext: UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, self, nil, nil);
}
and in the header file:
@interface WebViewController : UIViewController<UIWebViewDelegate, UIGestureRecognizerDelegate>{
IBOutlet UIButton *btnHome;
BOOL isLoaded;
ACAccountStore *account ;
}
我不知道我做错了什么。感谢您的每一个建议。
【问题讨论】:
标签: ios objective-c