1.问题描述:webview加载的文章,查看图片太灵敏,滑动webview的时候只要手指稍微沾到图片,就会进入图片浏览模式。
2.页面架构:本身这个界面是一个controller(控制器),加载web view的view是重写的一个类(class),是UIView类。在这个controller引用这个uiview类,加载web view信息。
点击事件:在UIView类写的点击事件,使用的block。
@property(nonatomic,strong)void(^action)(NSInteger index,NSMutableArray*array,NSMutableArray * urlArray);//和下面的方法进行参数的传递
-(void)didselectheadViewImage:(void(^)(NSInteger index,NSMutableArray*array,NSMutableArray * urlArray))action;
在controller里面,获取图片信息,引用点击方法。
[_detailTextPictureView didselectheadViewImage:^(NSInteger index, NSMutableArray *array, NSMutableArray *urlArray) {
self.picArray = [NSMutableArray arrayWithArray:array];
self.urlImageArray = [NSMutableArray arrayWithArray:urlArray];
[self fangda:index];
}];
放大事件使用的MWPhotoBrowser。
-(void)fangda:(NSUInteger)index{
//点击放大
MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self];
browser.displayActionButton = NO;
_mwArray = [NSMutableArray array];
for ( UIImage * image in _picArray) {
MWPhoto * photo = [[MWPhoto alloc]initWithImage:image];
[_mwArray addObject:photo];
}
[browser setCurrentPhotoIndex:index];
// Show
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:browser];
nc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:nc animated:YES completion:nil];
//保存图片
[browser didselectheadViewImage:^(NSString *idStr) {
UIActionSheet* sheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"保存到手机", nil];
_imgURL = [_urlImageArray objectAtIndex:[idStr integerValue]-1];
[sheet showInView:[UIApplication sharedApplication].keyWindow];
}];
}
在UIView类里面,加载web view并获取内容信息包括图片使用的是这个方法。
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)_request navigationType:(UIWebViewNavigationType)navigationType {}
如果有图片的url
if (_imgURL)
{
_timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(handleLongTouch) userInfo:nil repeats:NO];
_fangdaTimer = [NSTimer scheduledTimerWithTimeInterval:0.8 target:self selector:@selector(fangdaClick) userInfo:nil repeats:NO];
}
一个是长按保存,一个是放大,使用的timer计时器,但是这个计时器只是延缓了点击出现之后图片出现的时间,而没有改变初始点击的时候为什么这么灵敏的问题。