2012-11-11 22 views
7

के लिए संक्रमण CIFilters का उपयोग करके मैं CATransition की filter संपत्ति का उपयोग करने के लिए नए आईओएस 6 संक्रमण एनिमेशन (सीआईबीर्सस्वाइप ट्रांजिशन, सीआईसीपीमैचिन ट्रांजिशन इत्यादि) का उपयोग करने की कोशिश कर रहा हूं। CIFilter documentation कहता है कि ये आईओएस 6 पर उपलब्ध हैं, और CATransition documentation पर कुछ भी नहीं कहता है कि filter संपत्ति का उपयोग नहीं किया जा सकता है।CATransition

लेकिन, मैं उन्हें काम करने के लिए प्रतीत नहीं कर सकता। मुझे नहीं पता कि ऐप्पल कार्यक्षमता की अनुपलब्धता का उल्लेख करने में असफल रहा है या मैं इसे काम करने के लिए कुछ याद कर रहा हूं। यहां बताया गया है कि मैंने इसे कैसे सेट किया:

CIFilter *transitionFilter = [CIFilter filterWithName:@"CIBarsSwipeTransition"]; 
[transitionFilter setDefaults]; 

CATransition *transition = [CATransition new]; 
transition.duration = 0.4f; 
transition.filter = transitionFilter; 

[self.view.layer addAnimation:transition forKey:kCATransition]; 

किसी भी पॉइंटर्स की सराहना की जाती है।

उत्तर

3
"संक्रमण प्रभाव का उपयोग करते हुए" मिल गया

मुझे यकीन नहीं है कि यह आईओएस पर संभव है। CATransition प्रलेखन से:

उल्लेख किया था तो फिल्टर दोनों kCIInputImageKey और kCIInputTargetImageKey इनपुट चाबियाँ, और kCIOutputImageKey उत्पादन कुंजी का समर्थन करना चाहिए।

CIFilter documentation (स्थिरांक अनुभाग) से (जोर मेरा)

kCIInputTargetImageKey

एक CIImage उद्देश्य यह है कि एक संक्रमण के लिए लक्ष्य छवि है के लिए एक प्रमुख। ओएस एक्स v10.5 और बाद में उपलब्ध है। आईओएस में उपलब्ध नहीं है।

फिल्टर मौजूद है, और inputTargetImage इनपुट कुंजियों में से एक है, लेकिन फिर भी अगर आप कोर छवि डेटा अपने आप बना सकते हैं और गुण के लिए असाइन करें (जो डिबगर में ठीक से प्रदर्शित करता है) तो आप अब भी नहीं मिलता है प्रभाव।

ओएस एक्स पर एक ही प्रभाव बनाना आपके प्रश्न में कोड जितना सरल है। मैंने इसे रडार (1328139 9) के रूप में दायर किया है।

+0

क्या आप दस्तावेज के लिए एक लिंक प्रदान कर सकते हैं जो "आईओएस में उपलब्ध नहीं है" का उल्लेख करता है? मेरे प्रश्न में जुड़े दस्तावेज़ों में इसका उल्लेख नहीं है। वैसे भी, मैंने इसे बहुत समय पहले छोड़ दिया और अपना खुद का कस्टम कार्यान्वयन किया। मैं इसे उत्तर के रूप में चिह्नित करूंगा क्योंकि आपने ऐसा लगता है कि मैंने रडार दायर करने के लिए ऐसा किया है। –

+1

लिंक उत्तर में जोड़ा गया। स्थिरांक अनुभाग नीचे है। – jrturton

4

मुझे पता है कि प्रश्न काफी पुराना है, लेकिन मैं मेरा है कि लिंक का पालन करके काम कर

https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/CoreImaging/ci_tasks/ci_tasks.html

खंड में 11 चरणों की जाँच करें यह रूप में अच्छी तरह iOS पर काम करता

+0

मुझे पता है कि प्रलेखन और मुझे पता है कि वे अलग-अलग फ्रेम बनाने के लिए कदम हैं। क्या इसका मतलब है कि मुझे 'कैट्रानिशन' को उपclass करना है और खुद को संक्रमण लागू करना है? यह 'फ़िल्टर' संपत्ति के अस्तित्व में बिल्कुल बेकार लगता है। –