Iphone 点击地图视图上的按钮正在缩放地图。。?
我有一个地图视图,在上面我添加了一个UIView(021620200),其中包含10个UIButtons。此UIView的工作方式类似于菜单,显示和隐藏某个按钮动作 这里的问题是,当菜单显示时,当我点击单个ime按钮时,它工作得很好,但多次快速点击它会使MapView缩放(位于包含该按钮的UIView下)。这意味着触摸事件正在传递到MapView 详细信息:快速点击按钮会导致MapView中的缩放,停止点击时会执行按钮操作Iphone 点击地图视图上的按钮正在缩放地图。。?,iphone,ios,ios5,xcode4.2,mkmapview,Iphone,Ios,Ios5,Xcode4.2,Mkmapview,我有一个地图视图,在上面我添加了一个UIView(021620200),其中包含10个UIButtons。此UIView的工作方式类似于菜单,显示和隐藏某个按钮动作 这里的问题是,当菜单显示时,当我点击单个ime按钮时,它工作得很好,但多次快速点击它会使MapView缩放(位于包含该按钮的UIView下)。这意味着触摸事件正在传递到MapView 详细信息:快速点击按钮会导致MapView中的缩放,停止点击时会执行按钮操作 我怎样才能防止呢 您可以做的是在按钮处理程序期间禁用用户交互。因此,在选
我怎样才能防止呢 您可以做的是在按钮处理程序期间禁用用户交互。因此,在选择器中,请执行以下操作:
-(void)buttonSelector:(id)sender {
_mapView.userInteractionEnabled = NO;
// ... do what your button needs to do
_mapView.view.userInteractionEnabled = YES;
}
当然,这假设您的按钮在地图视图之前获取事件。。。我认为它应该是这样的,因为它位于地图视图的顶部
要处理快速点击,可以创建UIButton的子类并使用以下代码:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
_mapView.userInteractionEnabled = NO;
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
_mapView.userInteractionEnabled = YES;
}
在生成器中,将UIButton的类更改为子类。如果您调试传递给
touchesEnd
方法的集合中的touch,并查看tapCount,您将看到您的所有点击都在这里被捕获。是的,所以问题是,我将UIView添加为MapView的子视图。。我通过将UIView添加为self.view的子视图来修复它。是的,但不起作用。问题是,UIView超过了MapView,但如果快速点击,MapView仍会首先获取事件..啊,是的,因为它以双/多点击的方式拾取事件。因此,操作按钮的正常手势是一次点击-您是否希望用户使用快速点击来与您的按钮交互,或者这是一个边缘案例?这是一个QA案例,将应用程序发送回开发者,因为这个问题(好的,我会发布另一个可能对你有帮助的答案。