1. 程式人生 > >UIWebView中新增點選手勢UITapGestureRecognizer沒有效果的原因

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 =

NO;

    [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;

}


是的,你乜有看錯,加上這個程式碼,就是可以順利盡情的使用你的手勢了,真相終於大白於天下!!!!!!!
其他的手勢使用就方便了,比如說左右滑屏手勢,就不是很難搞定,