SORU
10 ŞUBAT 2011, PERŞEMBE


İOS için kullanma olayı nasıl hitTest:withEvent: pointİnside:withEvent: ilgili?

En apple belgeler çok iyi yazılmış olsa da, bence '19* *' bir istisnadır. Bana orada anlatılan şeyi açıkça anlamak çok zor.

Belge diyor

Darbe testi, bir pencere aramalar hitTest:withEvent: en üstteki görünüm görünüm hiyerarşisi; bu yöntem gelirleri ile özyinelemeli olarak arama pointInside:withEvent: Her görünümünde hiyerarşi verir, EVET, devam etmeden aşağıya hiyerarşi bulana kadar bu küme içinde olan sınırları touch gerçekleşti. Bu görüşü isabet sınama görünümü olur.

Yani bu şekilde sadece hitTest:withEvent: en üstteki görünüm adı verilen sistem çağrıları pointInside:withEvent: Tüm subviews, ve eğer bu dönüş belirli bir alt görünümüdür EVET, aramalar pointInside:withEvent: Bu alt küme var?

CEVAP
10 ŞUBAT 2011, PERŞEMBE


Oldukça basit bir soru gibi görünüyor. Ancak belge yani benim cevabım burada diğer belgeler gibi net değildir sana katılıyorum.

UİResponder hitTest:withEvent: uygulama aşağıdakileri yapar:

  • self pointInside:withEvent: çağırır
  • Eğer dönüş YOK, hitTest:withEvent: nil döndürür. hikayenin sonu.
  • Eğer dönüş EVET, subviews hitTest:withEvent: mesajlar gönderir. üst düzey küme başlar, ve bir küme kadar diğer görüşler devam ediyor döner olmayannil bir nesne ya da tüm subviews iletisi alırsınız.
  • Eğer bir küme, ilk kez olmayannil bir nesne döndürürse, ilk hitTest:withEvent: nesne döndürür. hikayenin sonu.
  • Eğer küme olmayannil nesne döndürürse, ilk hitTest:withEvent: self döndürür

Bu işlem ardışık tekrarlar, normal görünüm hiyerarşisi yaprak görünümü sonunda iade edilir.

Ancak, hitTest:withEvent farklı bir şeyler yapmak geçersiz olabilir. Birçok durumda, pointInside:withEvent: geçersiz kılma daha basit ve hala olay başvurunuzu işleme oynamak için yeterli seçenekleri sağlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • tutvid

    tutvid

    19 AĞUSTOS 2006
  • UsherVEVO

    UsherVEVO

    15 EKİM 2009