使用TableView的IOS 6 CalloutView不再起作用

时间:2012-09-22 12:30:24

标签: ios uitableview ios6-maps

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

这是第4个帮助!

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。点击CalloutView中的任何内容,地图都不会触摸。我的calloutview是自定义的tabbleview

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

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

- 在我的mapView中,当你在地图上点击一次时,它会在这个方法中进行3次。所以我限制触摸将动作。第一次触摸将动作。 - 在myCalloutView中有tabbleView,如果tabbleView接收触摸它将返回Map的虚假触摸,它会使你的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;
    }