Ответ 1
Вам нужно реализовать его самостоятельно, используя некоторую базовую математику.
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
Это методы делегатов, которые необходимо реализовать в вашем приложении.
Вам нужно получить расстояние между двумя касаниями, затем рассчитать изменения расстояния в вашем собственном коде.
Математическое уравнение, которое вы используете для получения расстояния, называется dot product
Я просто хочу указать, что уравнение, которое они используют в приведенном учебнике, неверно. Я обновил его, чтобы включить абсолютное значение, которое пропущено в учебнике.
Это точечный продукт:
- (CGFloat)distanceBetweenTwoPoints:(CGPoint)fromPoint toPoint:(CGPoint)toPoint
{
float xDist = fromPoint.x - toPoint.x;
float yDist = fromPoint.y - toPoint.y;
float result = sqrt( pow(xDist,2) + pow(yDist,2) );
return result;
}
Edit: Я допустил ошибку в своем предыдущем ответе... прошло некоторое время с тех пор, как я сделал какую-то математику.
Если вы не внесете квадрат корня результата, вы не получите истинного расстояния между точками. Это называется вычислением величины между двумя векторами.
Это правильный способ сделать это. Если вы хотите опустить sqrt, у вас не будет точного расстояния между двумя точками.
Если вы не отвечаете на квадрат ответа, ваш код будет работать, но он будет использовать измерения, которые намного превышают фактические значения. Поэтому в будущем, если вам нужно получить расстояние между двумя точками, оно вернет нечто вроде 90000 вместо фактического расстояния в пикселях, которое будет 300 пикселей.