2

我的地图有一个自定义标注视图。里面有一个tableview。直到 IOS 6 一切正常,如果我选择了一行,标注内会显示一个新视图,但现在使用 IOS 6 它不再工作了。显示了表格视图,但我无法选择一行,只需滚动表格即可。知道如何解决这个问题吗?

谢谢 4 帮助!

4

1 回答 1

0

我解决了这个问题。单击 CalloutView 中的任何内容,地图将无法触摸。我的 calloutview 是自定义的,有 tabbleview

1 - 在 MapviewController.h 文件中,您将添加委托:UIGestureRecognizerDelegate

2 - 在文件 MapViewController.m 中实现方法 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

- 在我的 mapView 中,当您在 Map 上单击 1 次时,它将采用此方法 3 次。所以我限制触摸将采取行动。第一次触摸将采取行动。- 在 myCalloutView 中有 tabbleView,如果 tabbleView 接收到触摸它会返回错误的地图触摸,它会让你的 tabbleview 可以触摸。它同样适用于你的按钮

注意:在 NSlog 命中测试视图中:将具有您希望它触摸的视图项目的名称。例如我的观点:isEqualToString:@"UITableViewCellContentView"]

static int count=0;
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
        NSLog(@"hit test view %@",[touch view]);    
        if(count >0 && count<=2)
        {
            count++;
            count=count%2;
            return FALSE;
        }
        count++;      
        if ([[[[touch view] class] description] isEqualToString:@"UITableViewCellContentView"]) {
            return FALSE;
        }
        return TRUE;
    }
于 2012-11-02T10:17:21.097 回答