2010-11-19 17 views
0

Kendime erişim ve kişisel bir meydan okumayla ilgili bir egzersiz olarak, göreceli olarak basit bir uygulama yazmak istediğime karar verdim.Atış rötuşlarıKolaylıkla MKMapView'daBağlantıyı etkinleştirme

Uygulama, ABD'nin MKMapView numarasını gösterir ve üzerinde herhangi bir yere dokunduğunuzda, size dokunduğunuz yeri, konumu ve ülkeyi göstermek için MKReverseGeocoder kullanır. Bu iyi çalışıyor, ancak MKMapView'a WildcardGestureRecognizer ekleyerek dokunma olaylarını kaçırmam gerekiyor. Bu VoiceOver kapalı harika çalışıyor.

VoiceOver'u açıp haritaya dokunduğumda "map" yazıyor. Eğer iki kez dokunursam, onu aktive ettiğinizi gösteren küçük tık sesi çıkarır. Dürüst olmak gerekirse, bu olayları nasıl durduracağım konusunda bir kayıp yapıyorum. Genel çözümün tüm ekranın üzerine şeffaf bir görünüm koymak ve dokunuşları geçmek olduğunu biliyorum, ancak bu VoiceOver ile çalışacak mı? Kayıt için

, ben kullanıyorum WildcardGestureRecognizer burada bulunur: How to intercept touches events on a MKMapView or UIWebView objects?

cevap

2

sorun VoiceOver açtığınızda, olaylar sistem tarafından engellenir dokunmatik olmasıdır. Bunu kanıtlamak için, dokunuşlarınBegan işlevine bir iz bıraktı. VoiceOver'ı açana kadar iyice ateş etmeli.

İki kez dokunduğunuzda duyduğunuz küçük tık sesi, VoiceOver aşırı sürüş hareketidir. VoiceOver kendi hareketleri kümesine sahiptir, ancak VoiceOver'ın jestlerini çift dokunuşla aşabilirsiniz. Örneğin, aşağı doğru kaydırma, VoiceOver ile bir sayfayı kaydırmaz. Ancak, iki kez hafifçe dokunursanız, tıklama sesini bekleyin ve ardından aşağı kaydırın, kaydırır.

2

iOS 5.0 bu yeteneği eklendi - sadece görünümde UIAccessibilityTraitAllowsDirectInteraction özelliği ayarlayın:

mapView.accessibilityTraits |= UIAccessibilityTraitAllowsDirectInteraction; 

(bu işe yaramazsa, bunun yerine accessibilityTraits yöntemini harita görünümü alt sınıfı ve geçersiz gerekebilir)

Bu öğeye ilk dokunuş hala "klik" sesi çıkaracak ve görünümün adını vb. Ilan edecek, ancak sonraki tüm dokunuşlar doğrudan etkileşimler olacak - yani dokunma olayları harita görünümüne geçirilecek.

Apple'ın iOS uygulamalarından birinde kullanımda olan örnek GarageBand'dir - piyano görünümü bu kör karaktere sahiptir, böylece kör kişi doğrudan dokunarak piyano klavyesindeki tuşları çalabilir.

İlgili konular