如何检测手势中的捏合与捏出手势?

时间:2012-06-24 13:24:19

标签: objective-c ios cocoa-touch uipinchgesturerecognizer

而不是缩放,我认为通常会使用捏合手势,我只是想检测是否捏是捏捏,因此我可以折叠或扩展一些表格部分。我该怎么做呢?

3 个答案:

答案 0 :(得分:10)

对于捏合手势,“scale”属性小于1,对于捏放,大于1。 这种情况发生在所有2个手指的夹点上。

我还观察到,如果我用5个手指捏住(这是最小化到家的快捷方式),每次缩放值恰好为1.0。但是我所知道的任何Apple文档都不支持这一点。

您可以通过简单地将NSLog放入捏合处理选择器

来试验这些值
NSLog(@"Scale: %.2f | Velocity: %.2f",pinch.scale,pinch.velocity);

答案 1 :(得分:7)

嗯,这似乎很容易。 UIPinchGestureRecognizer类只有两个属性scalevelocity。似乎合乎逻辑的是,负scale意味着向内捏,正向scale向外捏。

注意:“否定”可能会产生误导。 “较小”为0.0 < scale < 1.0,“较大”为scale > 1.0

答案 2 :(得分:2)

你看看scale属性是正确的,但它会在1左右切换,而不是零。

    - (BOOL) pinchWasOutwards:(UIGestureRecognizer *)gestureRecognizer
    {
        return gestureRecognizer.scale > 1;
    }