Эй, я использую этот код, чтобы имитировать вид ручки в моем приложении:IOS сделать gestureRecognizer слушать вне поля зрения
- (void) setupGestureRecognizer
{
CGPoint midPoint = CGPointMake(image.frame.origin.x + image.frame.size.width/2,
image.frame.origin.y + image.frame.size.height/2);
CGFloat outRadius = image.frame.size.width/2;
gestureRecognizer = [[OneFingerRotationGestureRecognizer alloc] initWithMidPoint: midPoint
innerRadius: outRadius/10
outerRadius: outRadius *2
target: self];
[self.view addGestureRecognizer: gestureRecognizer];
}
Как это, gestureRecognizer обрабатывает все события, которые происходят на или очень близко к кнопке. То, что я хочу следующее:
- gestureRecognizer только получает срабатывает, когда пользователь прикасается внутри изображение
- если палец оставляет изображение, gestureRecognizer следует продолжать
прослушивания (и вычисление угла)
На Android Я делаю это так:
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
float x = e2.getX()/((float) getWidth());
float y = e2.getY()/((float) getHeight());
float rotDegrees = cartesianToPolar(1 - x, 1 - y);
[...doing maths stuff here]
У меня есть все вращающиеся вещи, но как вы делаете работу gestureRecognizer, как вы можете обрабатывать события в Android? Если бы я потерял соединение с Интернетом и не имел другого выбора, кроме как самостоятельно его закодировать, я бы просто взял два разных распознавателя жестов, обратившись к прессе «init» и «следуя за пальцем» повсюду, установив соответствующую ручку в соответствии с ключом значение устанавливается в первом знаке распознавания жестов. Но это похоже на массивную груду плохого кода для меня, поэтому я был бы признателен за некоторые советы по этому поводу.
Cheers, Алекс
спасибо помощнику, который звучит потрясающе. Попробуй скоро и сообщишь, наслаждайся своим днем! Обновление – user2875404
: мне потребовались годы, чтобы понять, что вам также нужно добавить gestureRecognizer.delegate = self; при настройке gestureRecognizer, и вы можете добавить это к своему ответу, но так много спасибо! – user2875404
@ user2875404, я обновил, чтобы добавить это. – rdelmar