나는 3/의 뷰 컨트롤러를 가지고 있는데, 모두 같은 프레임이 서로 겹쳐져 있습니다. 세 개의 버튼을 사용하여 세그먼트를 전환합니다 (세그먼트 컨트롤과 비슷 함). 각 webview를 탭하면 새 컨트롤러로 연결되도록 탭 제스처 인식기를 webview에 연결하고 싶습니다. 그러나 첫 번째 웹보기에 대해 UITapGestureRecognizer
만 실행됩니다. 다른 사람이 제스처 인식기를 발사하는 방법을 말해 줄 수 있습니까? 이것은 내 코드입니다.각각의 UITapGestureRecognizer가있는 여러 UIWebview를 갖는 방법은 무엇입니까?
- (IBAction)changeWebView:(id)sender
{
UIButton *button = (UIButton *)sender;
switch (button.tag) {
case 0:
{
[self.view bringSubviewToFront:WebView1];
for (UITapGestureRecognizer *recognizer in WebView2.gestureRecognizers) {
[WebView2 removeGestureRecognizer:recognizer];
}
for (UITapGestureRecognizer *recognizer in WebView3.gestureRecognizers) {
[WebView3 removeGestureRecognizer:recognizer];
}
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showFullScreen1)];
tapGestureRecognizer.delegate = self;
[WebView1 addGestureRecognizer:tapGestureRecognizer];
}
break;
case 1:
{
[self.view bringSubviewToFront:WebView2];
for (UITapGestureRecognizer *recognizer in WebView1.gestureRecognizers) {
[WebView1 removeGestureRecognizer:recognizer];
}
for (UITapGestureRecognizer *recognizer in WebView3.gestureRecognizers) {
[WebView3 removeGestureRecognizer:recognizer];
}
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showFullScreen2)];
tapGestureRecognizer.delegate = self;
[WebView2 addGestureRecognizer:tapGestureRecognizer];
}
break;
case 2:
{
[self.view bringSubviewToFront:WebView3];
for (UITapGestureRecognizer *recognizer in WebView1.gestureRecognizers) {
[WebView1 removeGestureRecognizer:recognizer];
}
for (UITapGestureRecognizer *recognizer in WebView2.gestureRecognizers) {
[WebView2 removeGestureRecognizer:recognizer];
}
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showFullScreen3)];
tapGestureRecognizer.delegate = self;
[WebView3 addGestureRecognizer:tapGestureRecognizer];
}
break;
default:
break;
}
}
답장을 보내 주셔서 감사합니다.하지만 3 개의 페이지를 모두 동시에로드해야하며 webview의 확대/축소 기능을 사용하고 싶습니다. 따라서 단일 뷰를 사용하거나 웹 뷰에서 투명한 UIButton을 오버레이 할 수는 없습니다. – dragonfly