在UITableViewCell中挖掘MKMapView的详细信息

时间:2015-03-10 09:25:43

标签: ios objective-c iphone uitableview mkmapview

在我的ios应用程序中,TableView中的每个单元格都有一个MapView(每个单元都有不同的点)。当用户点击MKMapView时,应用应转到另一个UIViewcontroller,全屏显示MKMapView,如果它出现在单元格的其他位置,则应转到“详情“页面。但是,如果在MapView的框架内发生了点击,我无法识别程序。我尝试-touchesBegan,但控件甚至没有达到该方法。 有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您可以创建自定义UIView并将mapView添加为子视图,并将userInteractionEnabled设置为NO。现在,您可以使用UIGestureRecognizer来检测触摸。

UITapGestureRecognizer *sigleTap = [[UITapGestureRecognizer alloc] 
initWithTarget:self action:@selector(handleGesture:)];
sigleTap.numberOfTapsRequired = 1;
sigleTap.numberOfTouchesRequired = 1;
[yourCustomView addGestureRecognizer:sigleTap];


- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer
{
   your next logic
}

答案 1 :(得分:0)

您可以将mapView添加到其他UIControl实例并禁用地图视图上的点击(mapView.userInteractionEnabled = NO)。并向控件添加目标/操作。 (但是你应该做一些事情来确定触摸了什么控件,例如你可以使用控件的tag属性来设置模型的索引。)