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