2011-11-09 17 views
10

enter image description hereआईफोन - मैं गोलाकार कोने और छाया दोनों के साथ एक छविदृश्य कैसे बना सकता हूं?

कुछ ठीक जैसा ऊपर है?

मुझे पता है कि एक गोल कोने निर्माण करने के लिए:

imageView.layer.cornerRadius = 10; 
imageView.layer.shouldRasterize = YES; 
imageView.layer.masksToBounds = YES; 

छाया के लिए, मैं गोल कोने से

imageView.layer.shadowOffset = CGSizeMake(1, 1); 
imageView.layer.shadowRadius = 5; 
imageView.layer.shadowOpacity = 0.4; 
imageView.layer.shadowColor = [UIColor blackColor].CGColor; 
imageView.layer.shouldRasterize = YES; 

लेकिन imageView.layer.masksToBounds = YES; की कोशिश की है छाया को मारता है।

एक अन्य प्रश्न यह है कि छवि में दिखाए गए छाया की तरह बिल्कुल छाया कैसे उत्पन्न करें? मैंने फ़ोटोशॉप में यह छवि बनाई, मैंने प्रकाश की दिशा के रूप में 120 डिग्री का उपयोग किया। लेकिन अगर मैंने उपरोक्त कोड का उपयोग किया है, और मास्कटॉबाउंड बंद कर दिया है, तो मैं छाया देख सकता हूं और यह बदसूरत है।

या क्या मैं फ़ोटोशॉप में गोलाकार कोने + छाया छवि फ्रेम का उत्पादन कर सकता हूं और मेरे ऐप में प्रत्येक छवि को फ्रेम लागू कर सकता हूं? मुझे लगता है कि बेहतर प्रदर्शन करेगा। फ्लाई पर छवियों को छायांकन और कोनेरिंग में भयानक प्रदर्शन होगा यदि सभी छवियां स्क्रॉल पर हैं।

धन्यवाद

उत्तर

0

मैं दो छवि विचारों का प्रयोग करेंगे। एक पृष्ठभूमि पीएनजी जिसमें छाया है (प्रत्येक छवि के लिए फिर से उपयोग किया जा सकता है) और अग्रभूमि पीएनजी छवि जो गोलाकार कोनों में है।

4

इस प्रयास करें:

CALayer *sublayer = [CALayer layer]; 
sublayer.backgroundColor = [UIColor blueColor].CGColor; 
sublayer.shadowOffset = CGSizeMake(0, 3); 
sublayer.shadowRadius = 5.0; 
sublayer.shadowColor = [UIColor blackColor].CGColor; 
sublayer.shadowOpacity = 0.8; 
sublayer.frame = CGRectMake(30, 30, 128, 192); 
sublayer.borderColor = [UIColor blackColor].CGColor; 
sublayer.borderWidth = 2.0; 
sublayer.cornerRadius = 10.0; 
[self.view.layer addSublayer:sublayer]; 

CALayer *imageLayer = [CALayer layer]; 
imageLayer.frame = sublayer.bounds; 
imageLayer.cornerRadius = 10.0; 
imageLayer.contents = (id) [UIImage imageNamed:@"BattleMapSplashScreen.jpg"].CGImage; 
imageLayer.masksToBounds = YES; 
[sublayer addSublayer:imageLayer]; 

और original source

-1

आप शायद छाया के लिए एक अलग परत का उपयोग करना चाहते देखो ले, और अपने masksToBounds और गोलाई कोड रहते हैं।

CALayer *shadowLayer = [[[CALayer alloc] init] autorelease]; 
sublayer.frame = imageView.bounds; 
sublayer.masksToBounds = NO; 
sublayer.shadowOffset = CGSizeMake(1, 1); 
sublayer.shadowRadius = 5; 
sublayer.shadowOpacity = 0.4; 
sublayer.shadowColor = [UIColor blackColor].CGColor; 
sublayer.shouldRasterize = YES; 

[imageView.layer insertSublayer:shadowLayer atIndex:0]; // Put it underneath the image 

कि तुम छाया देना चाहिए: इस उदाहरण imageView में नाम छवि का मानना ​​है कि आप शैडो करना चाहते हैं और गोल है। अब धीमी पुनर्मूल्यांकन से बचने के लिए, मैं छवि से UIImage बनाने का सुझाव देता हूं। यह लिंक देखें: Create UIImage from shadowed view while retaining alpha?

आशा है कि इससे मदद मिलती है!

संबंधित मुद्दे