Intereting Posts
आईफ़ोन कैसे पहचानने के लिए कि क्या यूआईएलएब्लेल्स छांटित पाठ दिखाएगी? आईओएस में पेंट ब्रश स्ट्रोक कैसे प्राप्त करें ऐप कम से कम स्मृति चेतावनी के साथ, आईपैड 2 पर ठीक काम करता है, आईपैड 3 पर क्रैश करता है ऑब्जेक्ट कॉन्फ़िगर करते समय डेटासॉर्स पैटर्न बनाम प्रॉपर्टी सेट करना यूज़र इंटरैक्शन आईओएस 5 का उपयोग किए बिना आईफोन ऐप से मेल भेजें? एआरसी एप में गैर-एआरसी पुस्तकालय शामिल करें? डिस्क पर ऐप के आकार को मॉनिटरिंग और रखरखाव के लिए समाधान UISearchController आईओएस 11 अनुकूलन रिएक्ट-नेटिव – नेविगेटर घटक के साथ कस्टम नेविगेशन क्या मुरब्लाड एसडीके गेम विकास के लिए अधिक प्रासंगिक या सामान्यतः उपयोग किया जाता है? SecRandomCopyBytes के साथ रेंज में यादृच्छिक संख्या उत्पन्न करें अस्वीकृत ऐप: 17.2: ऐसे ऐप्स जिनमें उपयोगकर्ताओं को व्यक्तिगत जानकारी साझा करने की आवश्यकता होती है नेटिक पर प्रतिक्रिया दें: सूची दृश्य में Refs फायरबेस डेटाबेस संरचना स्क्रॉल करने तक टेबलदृश्य छवि लोड नहीं होती है

CALayer – छाया एक प्रदर्शन हिट का कारण बनता है?

इसलिए मैं अपने नेविगेशन नियंत्रक पर कुछ कस्टम ऐनिमेशन कर रहा हूं और जिस तरह से यह दृश्य और कंट्रोलर को पॉप करता है।

सब कुछ चिकनी चलती है जैसे ही मैं निम्न कोड ( UINavigationController उप- UINavigationController ) जोड़ता हूं, मुझे एक बहुत बड़ा प्रदर्शन हिट मिलता है एक छाया जोड़ने के बाद सभी एनिमेशन बहुत लम्बी हो जाते हैं। क्या यह अपेक्षित है या क्या मैं कोड में कुछ गलत कर रहा हूं?

 // This code gets called once during NavigationController initialization. [self.view setClipsToBounds:NO]; [self.view.layer setCornerRadius:5]; [self.view.layer setShadowOffset:CGSizeMake(0, 20)]; [self.view.layer setShadowColor:[[UIColor yellowColor] CGColor]]; [self.view.layer setShadowRadius:20.0]; [self.view.layer setShadowOpacity:1]; 

संपादित करें:

मेरी छाया त्रिज्या 1 में बदल दी और यह अभी भी धीमा है

Solutions Collecting From Web of "CALayer – छाया एक प्रदर्शन हिट का कारण बनता है?"

आपको एक छाया जोड़ने से मंदी की उम्मीद करनी चाहिए। 20 का एक shadowRadius बहुत अधिक है और विशेष रूप से धीमा होगा

छाया प्रतिपादन गति को बेहतर बनाने के लिए दूसरी कुंजी: shadowPath गुण सेट करें यह नाटकीय ढंग से मदद कर सकता है

 self.view.layer.shouldRasterize = YES; self.view.layer.rasterizationScale = UIScreen.mainScreen.scale; 

मैं हाल ही में धीमी Cayayer छाया के साथ कुछ मुद्दों था, और कोड की है कि सरल लाइन मेरे लिए सब कुछ तय!

shadowPath बजाय shadowPath का उपयोग करना

 theView.layer.shadowPath = [UIBezierPath bezierPathWithRect:theView.bounds].CGPath; 

इस पोस्ट की जाँच करें: iphone – एनीमेशन का प्रदर्शन बहुत खराब है जब दृश्य का छाया चालू है

हाँ, छाया बहुत महंगा है (विशेष रूप से एक छाया जो त्रिज्या के साथ खेलते हैं और आप देखेंगे कि यह आपके अनुभव के मंदी की डिग्री में बहुत बड़ा फर्क पड़ता है)। प्रदर्शन में सुधार करने का एक तरीका यह है कि इसे CGImageContext से एक बार प्रस्तुत करना और उस चित्र को प्रदर्शित करना है, जो हर बार जब यह परत को फिर से लाल करती है (लेकिन यह काम नहीं करता है तो छाया को चेतन या कुछ और करने की आवश्यकता होती है)।