Вы должны реализовать это самостоятельно, используя некоторую базовую математику.
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
Это те методы делегатов, которые вам нужно реализовать в вашем приложении.
Вам нужно получить расстояние между двумя касаниями, а затем рассчитать изменения расстояния в вашем собственном коде.
Математическое уравнение, которое вы используете для получения расстояния, называется точечным произведением
Я просто хочу отметить, что уравнение, которое они используют в цитируемом уроке, неверно.
Я обновил его, добавив абсолютное значение, пропущенное в руководстве.
Это точечное произведение:
- (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 вместо фактического расстояния в пикселях, которое будет 300px.