2009-07-23 17 views
15

ऐप्पल ने आईफोन एसडीके 3.0 में शेक एपीआई की घोषणा की। मुझे इस नई सुविधा के बारे में कोई जानकारी नहीं मिल रही है।आईफोन एसडीके 3.0 में शेक एपीआई का उपयोग कैसे करें?

कौन इसका उपयोग करने के बारे में जानता है? कोई उदाहरण, लिंक अच्छा होगा।

उत्तर

36

एपीआई आप देख रहे हैं UIResponder में हैं:

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event; 
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event; 
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event; 

आम तौर पर आप सिर्फ यह लागू:

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event { 
    if (event.type == UIEventSubtypeMotionShake) { 
    //Your code here 
    } 
} 
अपने UIViewController उपवर्ग में

(UIViewController UIResponder का एक उपवर्ग है)। इसके अलावा, आप इसे गति में संभालना चाहते हैं: साथ: गति नहीं, गति के साथ: इवेंट:। motionBegan: withEvent: फोन कॉल संदिग्ध होने पर संदिग्ध होने पर कहा जाता है, लेकिन ओएस उपयोगकर्ता के उद्देश्य से हिलाकर, और आकस्मिक हिलाने (सीढ़ियों पर चलने की तरह) के बीच का अंतर निर्धारित कर सकता है। यदि ओएस निर्णय लेता है कि यह गति के बाद असली हिला नहीं था: सेव: इसे कॉल किया जाएगा इसे गति कॉल किया जाएगा: गति के बजाय :EEvent:।

+0

I Am सही अगर मैं कहता हूं कि हम कोड 'जोड़ने की जरूरत है [आत्म becomeFirstResponder];' दृश्य पर हम करने के लिए शेक जेस्चर की आवश्यकता होती है काम? –

+1

आप यह कहने में सही होंगे। इसके अलावा: (बूल) कर सकते हैं फर्स्ट रेस्पॉन्डर {वापसी YES;} – akaru

3

जो हेविट हाल ही में committed कुछ कोड Three20 जो 3.0 शेक ईवेंट का उपयोग करता है। ऐसा लगता है कि आपको अपने UIResponder के अंदर -motionBegan:withEvent: के भीतर कुछ सरल कोड लागू करने की आवश्यकता है।

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { 
    if (event.type == UIEventSubtypeMotionShake) { 
     ... 
    } 
} 
7

मैं इस सूत्र में एक पूरा 3.0 उदाहरण पोस्ट:

How do I detect when someone shakes an iPhone?

+0

धन्यवाद, मैंने इसे पढ़ा। लेकिन यह दृष्टिकोण नई एपीआई का उपयोग नहीं करता है। – sashaeve

+0

पढ़ना जारी रखें, उस पोस्ट की मेरी प्रतिक्रिया 3.0 का उपयोग करती है। मैं ऊपर पोस्ट की गई घटनाओं का उपयोग करता हूं, केवल मैं यूवीव्यू को पहले उत्तरदाता होने के लिए सेट करने की आवश्यकता के बारे में थोड़ा सा समझाता हूं जो वास्तव में काम करने के लिए महत्वपूर्ण है। –