2011-08-25 20 views
10

[UIPanGestureRecognizer translationInView] öğesinden mutlak dokunma koordinatlarını almak mümkün mü? Bir iPad uygulaması üzerinde çalışıyorum ve UIPanGestureRecognizer'dan dokunmatik koordinat değerleri almak için çok fazla araştırma yaptım!UIPanGestureRecognizer'dan Koordinatlar'a dokunun

Ben ettik de denedim ...

herhangi bir öneriniz adamlar biz transaltionInView aldığım değerleri kullanarak mahsup ama gerçekten arkasında matematik anlamak mümkün değilim? Ravi

cevap

17

translationInView

bir jest delta değişikliğidir. Parmağınızı 20 pt sola taşırsanız, (-20.0, 0.0) elde edersiniz, bu haliyle zaten "mutlak" olur. muhtemelen ne anlama

dediğin görüş olaylarını tanıyan biri olmasa bile argüman yoluyla teslim görünüme göre, hangi, locationInView istemen. Tipik olarak, görünüm denetleyicisinin görünümünü veya etkinliğin ilgileneceği görünümü veya uygulamanıza daha anlamlı olan alt görünümü verirsiniz.

Ayrıca, gerçek mutlak gerekiyorsa, argümanlar aracılığıyla nil verebilirsiniz, akılda tutulması ve buna pencereye göreli (aka. "Mutlak")

Ve eğer gerekiyorsa döner Diğer görünümler ile mantık yapın, UIView örnek yöntemleriyle koordinatı bir görünümden diğerine dönüştürebilirsiniz: convertRect:fromView:, convertRect:toView:, convertPoint:fromView:, convertPoint:toView:. Bu yöntemler ayrıca, pencereye "mutlak" anlamına gelen görünüm argümanı olarak nil kabul eder.

gesture.locationInView(myView) 

CGPoint olarak almak ile temsil jest belirli bir görünümde konum olarak hesaplanan nokta verir:

+0

Awesome! Bu hareketlerin UIGestureRecognizer'dan türediği noktasını tamamen özledim! Bir kez daha, çok teşekkürler! – Ravi

+3

Oh BTW, locationInView, aradığım şeydi ... – Ravi

+4

@Can Dokümanlara göre translationInView: 'toplam hareketi verir, delta hareketi değil. –

0

İşte daha kolay bir yoldur.

+0

Bunun ne yaptığını ve OP'nin zaten denediğinden nasıl farklı olduğunu biraz daha ayrıntılı olarak açıklayabilir misiniz? Bir 'CGPoint' döndürüyor mu? – sgress454

+0

şeyi düzenledi – Esqarrouth