एसीबी ने UIGestureRecognizer
संदर्भ उद्धृत किया। यह थोड़ा और अधिक ठोस बनाने के लिए, आप संलग्न एक पैन इशारा पहचानकर्ता के साथ एक दृश्य है लगता है, और आप अपने दृश्य नियंत्रक में इन विधियों है:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesBegan");
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesMoved");
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesEnded");
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesCancelled");
}
- (IBAction)panGestureRecognizerDidUpdate:(UIPanGestureRecognizer *)sender {
NSLog(@"panGesture");
}
और निश्चित रूप से पैन इशारा पहचानकर्ता panGestureRecognizerDidUpdate:
भेजने के लिए कॉन्फ़िगर किया गया है संदेश।
अब मान लीजिए कि आप दृश्य को स्पर्श करते हैं, पैन इशारा के लिए अपनी उंगली को पर्याप्त रूप से ले जाएं, और फिर अपनी उंगली उठाएं। ऐप प्रिंट क्या करता है?
इशारा पहचानकर्ता YES
करने के लिए cancelsTouchesInView
सेट है, तो एप्लिकेशन इन संदेशों को लॉग इन करेंगे:
touchesBegan
touchesMoved
touchesCancelled
panGesture
panGesture
(etc.)
आप से पहले रद्द एक से अधिक touchesMoved
मिल सकता है।
इसलिए, यदि आप cancelsTouchesInView
YES
(डिफ़ॉल्ट) करने के लिए सेट, प्रणाली स्पर्श से पहले ही इशारा पहचानकर्ता से पहले संदेश भेजता रद्द हो जाएगा, और आप उस स्पर्श के लिए किसी भी अधिक स्पर्श संबंधित संदेश प्राप्त नहीं होगा।
इशारा पहचानकर्ता cancelsTouchesInView
सेट NO
को, एप्लिकेशन इन संदेशों को लॉग इन करेंगे तो:
touchesBegan
touchesMoved
panGesture
touchesMoved
panGesture
touchesMoved
panGesture
(etc.)
panGesture
touchesEnded
तो, आप निर्धारित करते हैं cancelsTouchesInView
NO
करने के लिए, सिस्टम के लिए स्पर्श संबंधित संदेश भेजने के लिए जारी रहेगा इशारा स्पर्श, इशारा पहचानकर्ता के संदेशों के साथ interleaved। स्पर्श रद्द होने की बजाय सामान्य रूप से समाप्त हो जाएगा (जब तक कि सिस्टम किसी अन्य कारण के स्पर्श को रद्द नहीं करता है, जैसे स्पर्श के दौरान होम बटन दबाया जाता है)।
धन्यवाद! जब आप cancelsTouchesInView को नहीं सेट करते हैं, तो ईवेंट सही पॉपिंग रद्द कर दिया जाएगा? – jebberwocky
मुझे समझ में नहीं आता कि "पॉपिंग रद्द करें" का अर्थ क्या है। –