Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/45.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 点击地图视图上的按钮正在缩放地图。。?_Iphone_Ios_Ios5_Xcode4.2_Mkmapview - Fatal编程技术网

Iphone 点击地图视图上的按钮正在缩放地图。。?

Iphone 点击地图视图上的按钮正在缩放地图。。?,iphone,ios,ios5,xcode4.2,mkmapview,Iphone,Ios,Ios5,Xcode4.2,Mkmapview,我有一个地图视图,在上面我添加了一个UIView(021620200),其中包含10个UIButtons。此UIView的工作方式类似于菜单,显示和隐藏某个按钮动作 这里的问题是,当菜单显示时,当我点击单个ime按钮时,它工作得很好,但多次快速点击它会使MapView缩放(位于包含该按钮的UIView下)。这意味着触摸事件正在传递到MapView 详细信息:快速点击按钮会导致MapView中的缩放,停止点击时会执行按钮操作 我怎样才能防止呢 您可以做的是在按钮处理程序期间禁用用户交互。因此,在选

我有一个地图视图,在上面我添加了一个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案例,将应用程序发送回开发者,因为这个问题(好的,我会发布另一个可能对你有帮助的答案。