来自the docs:如果UIGestureRecognizer
跟踪多次触摸,locationInView:
将(通常)返回:
......手势所涉及的触摸的质心。
据我所知,如果您没有使用手势识别器而是直接通过touchesBegan:withEvent:
等跟踪触摸,则只能询问{{1}中的每个人UITouch
它的touches
。
我显然可以迭代所有的触摸并自己计算质心,但我猜测必须有一些iOS库函数可以做到这一点。我是对的,这个功能可以访问吗?或者,有没有其他方法可以获得相同的功能,还是应该停止抱怨并自己计算质心?
答案 0 :(得分: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;
}