2013-03-13 67 views
1

我目前正在为iPhone编写一个iOS应用程序,其中一个特殊功能可以即时创建流程图。所创建的流程图是一个巨大的可滚动视图。流程图的每个信息节点都包含可自动将视图移动到下一个信息节点的按钮。在任何时候,用户都可以使用捏合手势来缩小当前信息节点,并完整地查看流程图。如何阻止iOS PinchGesture选择按钮?

我的问题是这样的:我注意到,如果用户用他们的一个手指点击信息节点中的一个按钮来开始这个捏动作,那么这个动作优先,下一个节点被显示,而不是捏动作缩放从当前节点出来。

我一直在寻找StackOverflow,并尝试了几件事来解决这个问题,但似乎没有任何工作。我想知道是否有人有类似的问题,如果他们能够克服这个问题?

+3

你有没有尝试将'cancelsTouchesInView'设置为YES? – Till 2013-03-13 19:16:08

+0

是的,我做了@Till。我也尝试让'PinchGesture'成为独家触摸,但这并不妨碍在触摸开始时选择按钮。 – 2013-03-13 19:33:22

+3

那么如何不使用按钮,但普通的意见,并添加tapGesture每个人认识按钮水龙头?这将允许您通过使用捏手势作为该方法的参数使用轻击手势上的'requireGestureRecognizerToFail'来给予捏手势优先级。 – Till 2013-03-13 19:36:46

回答

1

使用@Till的建议,再看看我的问题,我做了一些适用于我的事情,我想我会在这里分享它,以防其他人有类似的问题或愿望。

我能够创建UIViews,我可以用它来充当半按钮。对于这些意见,我greated UITapGestureRecognizers和有针对性的他们走向,将检查,看看方法,如果发件人的状态StateEnded:

-(void)handleButtonTap:(UITapGestureRecognizer *)sender 
{ 
    if(sender.state == UIGestureRecognizerStateEnded) 
    // Go on and do the code here 
} 

然而,希望仍保持原有的iOS按钮我做一步的外观进一步。对于我创建的每个UIButton,我没有将目标与这些按钮关联,而是为每个按钮创建UIViews。这些UIView完全空白,背景颜色为“清晰”。以这种方式,我现在可以有我的按钮,但仍然可以获得我想要的功能。

我希望这可以帮助任何有类似问题的人。再次感谢@Till的建议。