0

来自文档:如果 aUIGestureRecognizer正在跟踪多次触摸,locationInView:将(通常)返回:

...手势中涉及的触摸的质心。

据我所知,如果您不使用手势识别器而是直接通过touchesBegan:withEvent:等跟踪触摸,则只能向每个人UITouch询问toucheslocationInView:.

我显然可以遍历所有的触摸并自己计算质心,但我猜肯定有一些 iOS 库函数可以做到这一点。我是对的,这个功能可以访问吗?或者,是否有任何其他方法可以获得相同的功能,或者我应该停止抱怨并自己计算质心?

4

1 回答 1

0

AFAIK,Apple 没有提供任何内容。写的很直接。。。

// returns (0,0) if touches is nil or empty
-(CGPoint) centroidOfTouches:(NSSet *)touches inView:(UIView *)view
{
    CGPoint centroid = CGPointZero, 
    curTouchPoint;
    for (UITouch *touch in touches) {
        curTouchPoint = [touch locationInView:view];
        centroid.x += curTouchPoint.x;
        centroid.y += curTouchPoint.y;
    }
    centroid.x /= [touches count];
    centroid.y /= [touches count];
    return centroid;
}
于 2013-03-28T18:10:24.643 回答