2015-07-25 30 views
5

Kısa süre önce XCode 7 Beta'yı Swift 2.0 ile tamamladım. Uygulamamı test etmek için şimdi kullanıyorum. Testlerimin çoğunu xcode'un Record UI özelliği ile oluşturdum.Swift 2.0 UI testi ile bir sallama hareketini simüle edin

Uygulamam sallanma hareketlerine yanıt veriyor ve hızlı UI testlerimde programsal olarak bir sallama hareketini tetiklemek istiyorum. Kayıt sırasında sallanma hareketini tetiklemek ek kod eklemez.

Bunu yapmanın bir yolu var mı? Şimdiden teşekkürler!

+0

Yapabileceginiz gibi görünüyor ... Bunu denediniz mi: http://stackoverflow.com/questions/24433763/programmatically-trigger-shake-event-ios? Spesifik olarak, bu soru, bir cevabın önerdiği şekilde onu sağlar ve değiştirir mi? – Oxcug

+0

Objective C ile tamamen yabancı değilim, ama dönüştürmeye çalışacağım ve – Noah

+0

'u görmeye çalışacağım. Hedef C'nin bunun nasıl hızlı dönüşeceğini anlamak için yeterince iyi değilim. Sınıfların aynı olup olmadığını bile bilmiyorum. – Noah

cevap

0

linked to oldu ise görevinden dönüştürülen kod aşağıda: https://objectivec2swift.com/#/converter:

func setShakeState(fp8: Int) { 
    _shakeState = fp8 
} 

func _setSubtype(fp8: Int) { 
    _subtype = fp8 
} 

Ve İşte

var m: UIMotionEventProxy = NSClassFromString("UIMotionEvent")._init() 
m.setShakeState(1) 
m._setSubtype(UIEventSubtypeMotionShake) 
UIApplication.sharedApplication().sendEvent(m) 
UIApplication.sharedApplication().keyWindow().motionBegan(UIEventSubtypeMotionShake, withEvent: m) 
UIApplication.sharedApplication().keyWindow().motionEnded(UIEventSubtypeMotionShake, withEvent: m) 

Ben dönüşüm için kullanılan sitesidir.