2015-10-24 6 views
6

मैंने अभी अपने ऐप में मूल 3 डी टच कार्यक्षमता जोड़ने शुरू कर दिया है, और इसे जोड़ने का पहला प्रयास अच्छी तरह से चला गया है, काफी सरल लगता है।पता लगाएं कि जब कोई आईओएस 3 डी टच पिक समाप्त हो गया है (बिना पॉप के)

मैं सोच रहा था कि क्या यह पता लगाने का कोई तरीका था कि एक चोटी समाप्त हो गई थी, और पॉप में नहीं गई थी।

UIViewControllerPreviewingDelegate विधियां आपको यह बताने के लिए अच्छी हैं कि एक चोटी या पॉप का अनुरोध किया गया है, लेकिन मुझे यह नहीं बताया जा रहा है कि चोटी समाप्त हो गई है और पॉप में नहीं गई है।

क्या पेकड व्यू कंट्रोलर के पास इस समय यह देखने का एक तरीका है कि इस समय यह देखा गया है और मुझे लगता है कि यह पर्याप्त होगा। असल में मेरे पास एक सीगू है जो आम तौर पर कुछ चीजों को बनाता है क्योंकि यह दृश्य में जाता है, जो अगर मैं इसमें देखता हूं तो उसे पूर्ववत करने की आवश्यकता होगी यदि उपयोगकर्ता बिना पॉप-इन किए बिना चोटी को समाप्त करना चुनता है। फिलहाल मैं ऐसा नहीं कर सकता आवश्यक सफाई करने में सक्षम होने के लिए इस मामले का पता लगाने का एक अच्छा तरीका देखें।

चीयर्स

+0

मुझे एक ही समस्या है। आशा है कि ऐप्पल UIViewControllerPreviewingDelegate को एक और फ़ंक्शन जोड़ देगा। – HMHero

+1

समय के लिए, आपके पास एक ध्वज हो सकता है जो आपको बताता है कि वीसी देख रहा है या नहीं और इसे पूर्वावलोकन में सेट कर रहा है कॉन्टेक्स्ट (पूर्वावलोकनिंग कॉन्टेक्स्ट: यूआईवीव कंट्रोलर पूर्वावलोकन, व्यू कंट्रोलरफ़ोरोकेशन स्थान: सीजीपॉइंट) और पूर्वावलोकन में झूठ पर रीसेट करें कॉन्टेक्स्ट (पूर्वावलोकनिंग कॉन्टेक्स्ट: यूआईवीव कंट्रोलर पूर्वावलोकन, प्रतिबद्ध दृश्य नियंत्रक व्यू कंट्रोलर टॉकॉमिट: UIViewController)। – HMHero

+0

धन्यवाद मेरे पास समान विचार थे और यहां तक ​​कि सभी चोटी के कार्यों के लिए एक प्रोटोकॉल भी बनाया गया था, मैंने सोचा था कि देखा जा रहा दृश्य पर प्राप्त होना अच्छा होगा। दुर्भाग्य से पूर्वावलोकन दृश्य को गायब करने से पहले गायब होने से पहले गायब हो गया था, इसलिए मैं अभी भी peek गायब होने और पॉप – jimbobuk

उत्तर

15

आप registerForPreviewingWithDelegate() का उपयोग कर पूर्वावलोकन के लिए रजिस्टर करते हो, यह एक संदर्भ है कि UIViewControllerPreviewing प्रोटोकॉल के अनुरूप देता है। उस प्रोटोकॉल में इशारा पहचानकर्ता का संदर्भ होता है जिसका उपयोग peeking/popping में किया जाता है, जिसे previewingGestureRecognizerForFailureRelationship कहा जाता है। इसका उपयोग तब करना है जब अन्य इशारा पहचानकर्ताओं को एक साथ पहचाना जा सके, लेकिन आप परिवर्तनों का निरीक्षण करने के लिए लक्ष्य के रूप में अपनी वस्तु को भी जोड़ सकते हैं।

अब जब आप देख रहे हैं, तो इस इशारा पहचानकर्ता की स्थिति .Changed होगी। जब आप पॉपिंग के बिना रिलीज करते हैं, तो राज्य .Ended में बदल जाएगा। जब आप पॉप करते हैं, तो राज्य .Cancelled में बदल जाएगा (मुझे वास्तव में यह दूसरी तरफ होने की उम्मीद है, लेकिन कम से कम हम अंतर बता सकते हैं)। महत्वपूर्ण रूप से, यह स्थिति से पहले आपके peeked व्यू कंट्रोलर के viewDidDisappear कहा जाता है, ताकि आप समय पर अपना ध्वज समायोजित कर सकें।

+0

धन्यवाद, वास्तव में वादा करता है। एक बार जब मैं इसे काम कर रहा हूं तो मैं एक नज़र देखूंगा और जवाब स्वीकार करूंगा! धन्यवाद! – jimbobuk

+1

जो काम करता है, लेकिन अगर पूर्वावलोकन के लिए कोई स्क्रॉल करता है तो यह तब होगा। अगर हम अभी भी चरम मोड – CiNN

+3

में हैं, तो मैंने स्विफ्ट में नमूना कोड लिखा था: [शिंगोफुकुमामा/3 डी टचडेटेटस्टेटऑफपीकपॉप कैनसेल] (https://github.com/ShingoFukuyama/3DTouchDetectStateOfPeekPopCancel) –

संबंधित मुद्दे