2016-05-04 9 views
7

के लिए छाया बनाने के लिए कैसे मुझे UICollectionView के अंदर कक्षों के लिए छाया बनाने की आवश्यकता है। मैं कोशिकाओं subclassed है और layoutSubviews अंदर मैं निम्नलिखित कोड जोड़ दिया है:UICollectionViewCell

-(void)layoutSubviews{ 

    [super layoutSubviews]; 

    self.layer.masksToBounds = NO; 
    self.layer.shadowOpacity = 0.75f; 
    self.layer.shadowRadius = 5.0f; 
    self.layer.shadowOffset = CGSizeZero; 
    self.layer.shadowColor = [UIColor blackColor].CGColor; 
    self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath; 


} 

लेकिन कोशिकाओं उच्च हो जाता है और यह परिणाम है:

enter image description here

अगर मैं निकालें:

self.layer.masksToBounds = NO; 

कोशिकाओं को सही ढंग से दिखाया गया है (उनके बीच 10px की दूरी के साथ) लेकिन छाया दिखाई नहीं दे रही है। मैं क्या गलत कर रहा हूं? साथ ही, क्या layoutSubviews विधि के अंदर छाया जोड़ने के लिए सही है?

+0

आप कोशिकाओं के बीच की खाई की आवश्यकता है? छायाचित्र सेट करें और छायापाथ को हटा दें। –

+0

@VasanthanPrem हाँ मुझे कोशिकाओं के बीच अंतर की आवश्यकता है, अगर मैं लेआउट के अंदर कोड को हटा देता हूं। दृश्यमान मैं सही जगह को देख सकता हूं, लेकिन उस कोड का उपयोग करके कक्षों में छाया परिणाम जोड़ने के लिए उनके बीच कोई स्थान नहीं है – Signo

उत्तर

0

यह पाया जाता है, मैं layoutSubviews अंदर इस लाइन को जोड़ने के लिए भूल गया: दोनों रिक्ति है

self.clipsToBounds = YES; 

अब कोशिकाओं और शैडो

6

आप छाया सक्षम करने के लिए सीमा से बाहर बनाया जा करने की जरूरत है;

[cell.layer setMasksToBounds:NO]; 
3
func dropShadow() { 
    self.layer.masksToBounds = false 
    self.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.25).cgColor    
    self.layer.shadowOpacity = 0.5 
    self.layer.shadowOffset = CGSize(width: 0.0, height: 2.0) 
    self.layer.shadowRadius = 4.0  
    self.layer.cornerRadius = 5.0 
} 

//Direct Add Shadow to cell 

Cell.dropShadow() 
संबंधित मुद्दे