2012-03-12 19 views
16
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)]; 
[self addGestureRecognizer:panRecognizer]; 

- (void)pan:(UIPanGestureRecognizer *)gesture { 
    NSLog(@"%f", [gesture translationInView:self].x); 
} 

Yukarıdaki kod, geçerli panumun göreli konumunu kaydeder, ancak bulunduğum görünümün mutlak konumunu nasıl alabilirim? ios UIPanGestureRecognizer işaretçi konumu

Ben sadece sadece kullanıcının parmağı olduğu her yerde bir UIImageView slayt isteyen ediyorum.

+0

sen * "Ben varım görünüm için mutlak pozisyon" * ile ne demek istiyorsunuz? – sch

cevap

27

translationInView size pan (ne kadar değiştiğini x) çeviri ve olmayan görünümü (x değeri) tavanın konumu verir. Eğer tava konumunu gerekiyorsa, yöntemini locationInView kullanmak zorunda. aşağıdaki gibi

Sen görünümüne nispeten koordinatlarını bulabilirsiniz:

- (void)pan:(UIPanGestureRecognizer *)gesture { 
    NSLog(@"%f", [gesture locationInView:self.superview].x); 
} 

Ya nispeten pencereye:

- (void)pan:(UIPanGestureRecognizer *)gesture { 
    NSLog(@"%f", [gesture locationInView:self.window].x); 
} 
+7

yerine 'self' ait' UIGestureRecognizer' en 'view' özelliğini kullanmak daha iyi olmaz mı? Hareket algılayıcısını bir şeyleri kırmadan hareket ettirmenize izin verir. Ayrıca pencere konumu için, 'nil 'geçmek yeterlidir. –

0

ben Superview için

- (void)pan:(UIPanGestureRecognizer *)gesture { 
    NSLog(@"%f", [gesture locationInView:self].x); 
} 

Ya nispeten (böyle bir şey basit bir yolu 2 puan var bir kere, onu takip x ve dokunma y ve elde etmektir düşünüyorum lar Bugün X: 230, Y 122) Eğer x ve y UIScroll bakış kaydırma ayarlayın.

0

Swift

Bağıl konum (: aşağı beni oy kullanmaz yararlı değilse

ben hala bir çaylak D değilim ... Ben bu cevabı tam olarak nasıl emin değilim senin jest CGPoint) self.view için:

print(gesture.locationInView(self.view)) 
İlgili konular