दिलचस्प पोस्ट
Fluent NHibernate को कैसे बताएं कि कोई क्लास प्रॉपर्टी नहीं मैप करने के लिए कैसे जावा में sha256 के साथ कुछ स्ट्रिंग हैश करने के लिए? UITextField सीमा रंग अद्वितीयता के लिए वैराडीक टेम्प्लेट पैरामीटर की जांच करें केवल विशिष्ट कुंजियों को फ़िल्टर करने के लिए फ़िल्टर करें? Xcode 5 और IOS 7: आर्किटेक्चर और मान्य आर्किटेक्चर आईओएस में पोस्ट के माध्यम से एनएसडीटा और अपलोडिंग छवियां मैं ओरेकल में एक अल्पविराम से सीमांकित सूची में कई पंक्तियों को कैसे जोड़ सकता हूं? jquery इनपुट फोकस पर सभी का चयन करें Jquery बाइंड डबल क्लिक करें और एकल क्लिक अलग से जावास्क्रिप्ट में ऑब्जेक्ट हटाना एंड्रॉइड मैप एपीआई v2 के साथ कस्टम-आकार के बिटमैप मार्कर कैसे बनाएं एकाधिक AJAX कॉल के लिए jQuery कॉलबैक ऐप्पकपाटव 7 – वी 21 नेविगेशन ड्रॉवर हैमबर्गर आइकन नहीं दिखा रहा है जावा में फ्लोट की तुलना करने के लिए == का उपयोग करने में क्या गलत है?

UILongPressGestureRecognizer नीचे दबाने पर दो बार कहलाता है

मुझे पता चल रहा है कि उपयोगकर्ता ने 2 सेकंड के लिए दबा दिया है:

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; longPress.minimumPressDuration = 2.0; [self addGestureRecognizer:longPress]; [longPress release]; 

इस तरह मैं लंबे प्रेस को संभालता हूं:

 -(void)handleLongPress:(UILongPressGestureRecognizer*)recognizer{ NSLog(@"double oo"); } 

जब मैं 2 सेकेंडों से अधिक समय तक दबाता हूं तो पाठ "डबल ऊ" दो बार मुद्रित हो जाता है ऐसा क्यों है? मैं कैसे तय कर सकता हूं?

वेब के समाधान से एकत्रित समाधान "UILongPressGestureRecognizer नीचे दबाने पर दो बार कहलाता है"

UILongPressGestureRecognizer एक सतत घटना पहचानकर्ता है आपको यह देखने के लिए राज्य को देखना होगा कि क्या यह घटना की शुरुआत, मध्य या अंत है और तदनुसार कार्य करें। यानी आप शुरू होने के बाद सभी घटनाओं को फेंक सकते हैं, या केवल आपको आंदोलन की आवश्यकता के अनुसार ही देख सकते हैं। कक्षा संदर्भ से :

लंबे प्रेस इशारों निरंतर हैं इशारे शुरू होता है (UIGestureRecognizerStateBegan) जब स्वीकार्य उंगलियों की संख्या (numberOfTouchesRequired) को निर्दिष्ट अवधि (न्यूनतम प्रेसड्यूबेशन) के लिए दबाया जाता है और स्पर्श स्वीकार्य श्रेणी की गति (स्वीकार्य मल्टीमेंट) से आगे नहीं बढ़ता है। जब भी कोई उंगली चलती है, तब इशारा पहचानकर्ता परिवर्तन राज्य में बदलाव करता है, और यह समाप्त होता है (UIGestureRecognizerStateEnded) जब किसी भी उंगलियों को हटा दिया जाता है

अब आप इस तरह राज्य को ट्रैक कर सकते हैं

 - (void)handleLongPress:(UILongPressGestureRecognizer*)sender { if (sender.state == UIGestureRecognizerStateEnded) { NSLog(@"UIGestureRecognizerStateEnded"); //Do Whatever You want on End of Gesture } else if (sender.state == UIGestureRecognizerStateBegan){ NSLog(@"UIGestureRecognizerStateBegan."); //Do Whatever You want on Began of Gesture } } 

UILongPressGestureRecognizer की स्थिति की जांच करने के लिए सिर्फ चयनकर्ता विधि पर एक बयान जोड़ें:

 - (void)handleLongPress:(UILongPressGestureRecognizer *)sender { if (sender.state == UIGestureRecognizerStateEnded) { NSLog(@"Long press Ended"); } else if (sender.state == UIGestureRecognizerStateBegan) { NSLog(@"Long press detected."); } } 

आपको सही स्थिति जांचनी होगी, क्योंकि प्रत्येक राज्य के लिए अलग-अलग व्यवहार हैं। सबसे अधिक संभावना है कि आपको UILGRESSRecognizerStateBegan राज्य को UILongPressGestureRecognizer के साथ की आवश्यकता होगी।

 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; longPress.minimumPressDuration = 1.0; [myView addGestureRecognizer:longPress]; [longPress release]; 

 - (void)handleLongPress:(UILongPressGestureRecognizer *)gesture { if(UIGestureRecognizerStateBegan == gesture.state) { // Called on start of gesture, do work here } if(UIGestureRecognizerStateChanged == gesture.state) { // Do repeated work here (repeats continuously) while finger is down } if(UIGestureRecognizerStateEnded == gesture.state) { // Do end work here when finger is lifted } } 

बस यह प्रयास करें:

उद्देश्य सी

 - (void)handleLongPress:(UILongPressGestureRecognizer*)sender { if (sender.state == UIGestureRecognizerStateEnded) { NSLog(@"Long press Ended"); } else if (sender.state == UIGestureRecognizerStateBegan) { NSLog(@"Long press detected."); } } 

स्विफ्ट 2.2:

 func handleLongPress(sender:UILongPressGestureRecognizer) { if (sender.state == UIGestureRecognizerState.Ended) { print("Long press Ended"); } else if (sender.state == UIGestureRecognizerState.Began) { print("Long press detected."); } } 

स्विफ्ट में इसे कैसे प्रबंधित करें यह यहां दिया गया है:

 func longPress(sender:UILongPressGestureRecognizer!) { if (sender.state == UIGestureRecognizerState.Ended) { println("Long press Ended"); } else if (sender.state == UIGestureRecognizerState.Began) { println("Long press detected."); } } 

स्विफ्ट 3.0:

 func handleLongPress(sender: UILongPressGestureRecognizer) { if sender.state == .ended { print("Long press Ended") } else if sender.state == .began { print("Long press detected") } 

आपका इशारे हेन्डलर प्रत्येक राज्य इशारा के लिए कॉल प्राप्त करता है इसलिए आपको प्रत्येक राज्य के लिए एक जांच करने और अपने कोड को आवश्यक स्थिति में डाल दिया है।

अगर-दूसरे पर स्विच-केस का उपयोग करना चाहिए:

 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; longPress.minimumPressDuration = 1.0; [myView addGestureRecognizer:longPress]; [longPress release]; 

 -(void)handleLongPress:(UILongPressGestureRecognizer *)gesture { switch(gesture.state){ case UIGestureRecognizerStateBegan: NSLog(@"State Began"); break; case UIGestureRecognizerStateChanged: NSLog(@"State changed"); break; case UIGestureRecognizerStateEnded: NSLog(@"State End"); break; default: break; } }