2010-07-02 7 views
6

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

पृष्ठभूमि जानकारी: मैं मूल रूप से छवियों के समूह के माध्यम से लंबवत स्क्रॉल कर रहा हूं। कुछ हद तक फोटो ऐप की तरह। यह सब 3.2 से आगे है, इसलिए मेरे पास छाया की तरह चीजों तक पहुंच है और कैलियर में कंधा गुणों का उपयोग करना चाहिए।

उत्तर

15

कैलियर छाया के बारे में जानने के लिए एक महत्वपूर्ण बात यह है कि वे डिफ़ॉल्ट रूप से परत के मिश्रित अल्फा चैनल से प्रस्तुत होते हैं; यह वास्तव में धीमा हो सकता है, खासकर जब परत घूर्णन या आकार बदल रहा है। आपको shadowPath प्रॉपर्टी में देखना चाहिए: यदि आप कोर एनीमेशन को एक साधारण आकार देते हैं, जैसे कि आयत (UIBezierPath+bezierPathWithRect: परत के bounds के साथ आपको [CGPath प्रॉपर्टी] CGPathRef के माध्यम से आप वहां उपयोग कर सकते हैं), आपको बहुत कुछ दिखाई देगा बेहतर प्रदर्शन।

shouldRasterize भी निश्चित रूप से उपयोगी है, विशेष रूप से ऐसे विचारों के साथ जिनमें कई सबव्यूव होते हैं जो अक्सर नहीं बदलते हैं; सुनिश्चित करें कि, आपने परत के rasterizationScale को [UIScreen mainScreen].scale पर सेट किया है, या आपको आईफोन 4 की तरह उच्च-रिज़ॉल्यूशन स्क्रीन पर कुछ बुरा पिक्सेलेशन मिलेगा।