Hızlı bir çift basış, tek bir kullanıcı eylemidir, çünkü giriş için kulaklık kontrolünü kullanan hemen her uygulamada istenen davranış budur. Gelen kontrol olaylarını manuel olarak çözmek, sıraya almak ve ayrıştırmak zorunda kalan geliştiricileri kurtarır ve iyi bir şeydir (tm)!
Bunun çalışması için, sistem daha fazla kullanıcı girişi beklerken az miktarda gecikme sunacaktır. Bu işlemin tamamlanması için yalnızca birkaç yüz milisaniye gerekir, ardından etkinliği kodunuzda alırsınız.
çift pres tespitinin, uzun bir acı, fakat yararlı örnek:
- Kullanıcı
- Sistem bildirimler pres kulaklık kontrolü üzerine doğru bastırılan, serbest bırakılması için bekler
- Kullanıcı bültenleri kulaklık kontrol
- Sistem bildirimleri serbest bırakıldı, zaman düğmesinin basılı tutulduğunu algılar (uzun basma vs kısa basma) ve kuyruklar tek basma olayı
- Sistem, bir çift basış olması durumunda 200ms bekler
- Oldu! Kullanıcı
- Kullanıcı bültenleri kulaklık kontrolü
- Sistem bir üçlü olduğunu
- Sistem çift pres olayı içine tek pres olayı sıraya durumunda 200ms bekler dönüştürür serbest bırakılması için bekler, kulaklık kumanda üzerindeki
- Sistem bildirimler basın aşağı bastırır -Basın
- 200 ms
- Sisteminde hiçbir kullanıcı girişi çift pres olayı harekete ve
gecikme bak nasıl kuyruğunu temizler Tek/çift/üçlü-basma tespiti için gereklidir.
olay başvurunuzu ulaştığında kullanıcının yapılmış tıklayın ne tür açıklayan bir alt türü sahip olacaktır:
let rc = event!.subtype
print("received remote control \(rc.rawValue)") // 101 = pause, 100 = play
switch rc {
case .RemoteControlTogglePlayPause:
// ..
case .RemoteControlPlay:
// ..
case .RemoteControlPause:
// ..
default:break
}
similar question işaret bir bu olay kodu tamsayılar üzerinde bir cevap gibi bir şey olacak;
100 = play
101 = pause
103 = single mic click
104 = double mic click
105 = triple mic click
etc ...
Birçok platformda çift basma eylemleri, tek bir kullanıcı olayı olarak işlenir. UIEventTypeRemoteControl düğmesinin kaç kez basıldığını belirten herhangi bir özellik içerir mi? –
Ne tür bir gecikme "gecikme" alıyorsunuz? Yarım saniye ile saniye arasında mı? Birkaç saniye? Örnek bir proje veya tekrarlanabilir bir test vakası sunabilir misiniz? – JAL