11

Şu anda benim UIPanGestureRecognizer, her bir tava, büyük ve gerekli olan, tanır, ancak bir değişkenin değerini artırmak ve azaltmak için sürgülü bir jest olarak kullandığım için, yöntem içinde sadece sık sık hareket etmek istiyorum. Algılanan her defasında bile 1 oranında artırırsam, değer çok hızlı gider.UIPanGestureRecognizer ile, çok fazla harekete geçmenin bir yolu var mı?

Böyle bir şey yapmanın bir yolu var mı, her 10 piksellik bir kaydırma mı, yoksa benzer mi?

+1

Değişkeni, kullanıcının ileti başına bir kez değil, ne kadar paniklediğine göre ayarlamak istediğinizi düşünüyorum. –

+0

ÇeviriInView'in pan mesafesinin ** BAŞLANMASI ** olan mesafeyi verdiğinin sadece bir hatırlatıcısıdır, bu yüzden kesinlikle bir sürgü kontrolü kullanmak gibi - kullanımı kesinlikle kolaydır. – Fattie

cevap

18

Pan aralığının ne kadar ilerlediğini ve minimum mesafeye göre test edilebildiğini gösteren translationInView:'u arıyorsun. Bu çözüm, minimum mesafeye eşit bir miktarda ileri ve geri gittiğiniz durumu kapsamaz, ancak senaryonuz için önemliyse eklemek çok zor değildir.

#define kMinimumPanDistance 100.0f 

UIPanGestureRecognizer *recognizer; 
CGPoint lastRecognizedInterval; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(didRecognizePan:)]; 
    [self.view addGestureRecognizer:recognizer]; 
} 

- (void)didRecognizePan:(UIPanGestureRecognizer*)sender { 
    CGPoint thisInterval = [recognizer translationInView:self.view]; 

    if (abs(lastRecognizedInterval.x - thisInterval.x) > kMinimumPanDistance || 
     abs(lastRecognizedInterval.y - thisInterval.y) > kMinimumPanDistance) { 

     lastRecognizedInterval = thisInterval; 

     // you would add your method call here 
    } 
} 
+0

Not: ÇeviriInView size bu mesafeyi verir. ('En yeni bölümün' mesafesi değil.) Yani, panayı temel alan bir değer belirlemek inanılmaz derecede kolaydır. Aslında bu ** bir sürgü kullanmak gibi **. Bu bir satır kod .. yourValue = [sender translationInView: self.view] .x; ve bu kadar. – Fattie

İlgili konular