UIView

2012-07-25 18 views
5

के लिए सबसे सरल (आयताकार) ड्रॉप छाया मैंने कई स्निपेट्स को देखा है जो या तो: ड्रॉप ड्रॉप के रूप में सरल कुछ के लिए बहुत जटिल हैं, UIView subclassing और quartz2d कॉल का उपयोग करने के लिए, या मैं उन्हें नहीं मिल सकता काम।UIView

मैं सिर्फ यह देखना चाहता हूं कि मैं किसी अन्य व्यक्ति के लिए एक सबव्यूव्यू के रूप में जोड़ रहा हूं (सबव्यूव किसी अन्य दृश्य से लिया गया है नियंत्रक मैं बस आवंटित कर रहा हूं - मुझे पता है कि शायद यह अच्छा नहीं है लेकिन ओह ठीक है), कोई आईबी नहीं या कुछ भी। इसके बारे में जाने का सबसे सरल/सबसे स्वीकार्य तरीका क्या है? अगर मैं आईओएस 4 पर काम करना चाहता हूं तो क्या यह अलग होगा?

उत्तर

10

यह <QuartzCore/QuartzCore.h> आयात और नीचे के रूप में एक ऐसी ही स्निपेट का उपयोग कर के रूप में आसान है:

self.viewAboutContainer.layer.shadowColor = [[UIColor blackColor] CGColor]; 
self.viewAboutContainer.layer.shadowOpacity = 0.7; 
self.viewAboutContainer.layer.shadowRadius = 4.0; 
self.viewAboutContainer.layer.shadowOffset = CGSizeMake(5.0f, 5.0f);  
self.viewAboutContainer.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.viewAboutContainer.bounds].CGPath; 
+2

भी सुनिश्चित करें कि self.viewAboutContainer.clipsToBounds = सं। अन्यथा, छाया दृश्य के बाहर गिर जाएगी और फिसल जाएगी। –

+0

@ ब्रैडेन मैंने "[myview.layer setShadowPath: [UIBezierPath bezierPathWithRect: myview.bounds] .CGPath] का उपयोग करके परफॉर्मेंस समस्या का समाधान किया था;"। छाया और कोने क्रूर चिकनी स्क्रॉलिंग के साथ पोर्ट्रेट मोड में ठीक काम कर रहा है। लेकिन मेरा ऐप दोनों मोड में समर्थित है और जब मैं अभिविन्यास छाया को ठीक से काम नहीं कर रहा हूं (पोर्ट्रेट व्यू के फ्रेम के अनुसार छाया प्रदर्शन)। तो क्या कोई विचार यह हल करने के लिए है? – Hitarth

+1

@VictorEngel viewAboutContainer _any_ UIView का नाम है या कुछ भी जो UIView (यानी UIImageView) प्राप्त करता है। नाम सिर्फ प्लेसहोल्डर है। – Brayden