UIWebView中新增點選手勢UITapGestureRecognizer沒有效果的原因
這是我粗略的使用UIWebView中點選手勢,可是一開始怎麼都是沒有辦法成功。沒有呼叫自己定義的方法。
粗略程式碼如下:僅供觀看:
UIWebView:
webViewPic = [[UIWebViewalloc] initWithFrame:CGRectMake(0,44, Kwidth,Kheight - 64 -48)];
webViewPic.scrollView.showsVerticalScrollIndicator =NO;
webViewPic.delegate =self;
webViewPic.scalesPageToFit =NO;
// webViewPic.userInteractionEnabled = YES;
[webViewPicloadHTMLString:strPicLinkbaseURL:[NSURLURLWithString:nil]];
[self.viewaddSubview:webViewPic];
手勢程式碼:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleSingle:)];
singleTap.delegate= self;
singleTap.cancelsTouchesInView =
[webViewPicaddGestureRecognizer:singleTap];
這裡呼叫的是handleSingle自定義方法,方法如下:
-(void)handleSingle:(UITapGestureRecognizer *)sender{
if (picLocal >=0.0 && picLocal <=allPicLink.count) {
if (picLocal ==allPicLink.count - 1) {
picLocal = allPicLink.count -2;
}
[webViewPicloadHTMLString:[NSStringstringWithFormat:@"<html><body><img width='960px' src='%@'/></body></html>", [allPicLinkobjectAtIndex:(++picLocal)]]baseURL:nil];
}
}
當然了,大家沒有必要細細的看上面的程式碼,就是這裡除了問題,看是沒有問題的,當點選UIWebView上面的時候,應該會呼叫指定的handleSingle方法的,可是問題來了,點選的時候完全乜有任何的反應。下面是問題的關鍵中的關鍵:那就是少寫了一個方法:
#pragma mark -
#pragma mark UIGestureRecognizerClick
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
returnYES;
}
是的,你乜有看錯,加上這個程式碼,就是可以順利盡情的使用你的手勢了,真相終於大白於天下!!!!!!!
其他的手勢使用就方便了,比如說左右滑屏手勢,就不是很難搞定,