2011-10-12 6 views
15

पर UILabelCALayer छाया के साथ है। और मैं इसे UIView एनीमेशन के माध्यम से बस ले जाता हूं।आईफोन - एनीमेशन का प्रदर्शन बहुत खराब है जब दृश्य की छाया

प्रदर्शन खराब है और मैं देख सकता हूँ एनीमेशन बिल्कुल चिकनी नहीं है।

मुझे लगता है कि यह UILabel की छाया है जो एनीमेशन समस्या का कारण बनती है क्योंकि अगर मैं छाया बंद कर देता हूं, तो एनीमेशन सामान्य जितना आसान हो जाता है।

मैं view.layer.shouldRasterize = YES;

उपयोग करने की कोशिश की है लेकिन फिर भी एनीमेशन प्रदर्शन है।

किसी को भी मुझे कुछ संकेत दे सकते हैं?

धन्यवाद

उत्तर

39

आप shadowPath संपत्ति का उपयोग कर कैलियर की छाया के प्रदर्शन में काफी सुधार कर सकते हैं-इससे परत के अल्फा मुखौटा को पुन: गणना किए बिना छाया खींचने की अनुमति मिलती है। एक आयताकार देखने के लिए, आप इसे इस तरह का उपयोग करेंगे:

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

या, यदि अपने कोने गोल कर रहे हैं,

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

ध्यान दें कि इस दृश्य की चारों ओर एक छाया है सीमाओं-यदि आप बेहतर चाहते हैं पाठ पर ही छाया पर प्रदर्शन, आप या तो लेबल का पाठ छाया गुण (जो बलिदान CALayer छाया का ब्योरा, कलंक, बेहतर प्रतिपादन गति के लिए की तरह) या एक अधिक जटिल विकल्प बनाने एक CGPathRef उपयोग करने के लिए उपयोग करने की आवश्यकता परत की shadowPath पाठ से खुद को ग्लिफ़ के रूप में।

+0

हाँ यह काम किया। theView.layer.shadowPath = [UIBezierPath bezierPathWithRect: theView.bounds] .CGPath; मेरे प्रदर्शन में बहुत सुधार करता है। यह अब काफी चिकनी है। धन्यवाद –

+0

धन्यवाद। यह मेरे बेकन बचाया! – followben

+0

यह पाठ छाया संपत्ति कहां है? – jjxtra

0

अगर यह जवाब आप के लिए देख रहे हैं, लेकिन मैं इस पाया सुनिश्चित नहीं हैं: Drop Shadow on UITextField text

यह बेहतर प्रदर्शन किया जा सकता है, मैं इसे करने की कोशिश नहीं की है लेकिन ऐसा लगता है कि यह होगा।