2016-09-13 2 views
0

Я хочу установить тень с UICollectionViewCell, как это:UICollectionViewCell не может установить тень

img

Я пишу код в пользовательской ячейке

override func awakeFromNib() { 
     super.awakeFromNib() 
     layer.shadowColor = UIColor(red: 0.7176470757, green: 0.7176470757, blue: 0.7176470757, alpha: 1.0000000000).CGColor 
     layer.shadowOffset = CGSizeMake(0, 4) 
     layer.shadowRadius = 2 
     layer.shadowOpacity = 1 
    } 

но не может установить ячейки тени. Все подтаблицы по установленной тени:

mycell

Как я могу решить эту проблему?

ответ

0

Вы должны поместить клипсы в список. Это проблема.

self.layer.shadowColor = UIColor(red: 0.7176470757, green: 0.7176470757, blue: 0.7176470757, alpha: 1.0000000000).CGColor 
self.layer.shadowOffset = CGSizeMake(0, 4) 
self.layer.shadowOpacity = 1.0 
self.layer.shadowRadius = 2.0 
self.clipsToBounds = false 
self.layer.masksToBounds = false 
0

Добавьте эту строку тоже:

layer.masksToBounds = false 

По умолчанию это true и ограничивает ячейки в пределах его размер кадра, установив его в false позволяет тень ячейки быть видна снаружи рамы.

+0

спасибо, я добавил эту строку кода, но все тот же, я проверил document.masksToBounds по умолчанию NO – Neal

1

Перейти к collectionviewcell.m и добавить их вручную.

Я сделал это, чтобы исправить это.

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     //////// make shadow of total view 
     self.clipsToBounds = NO; 
     self.layer.masksToBounds = NO; 
     self.layer.shadowRadius = 5; 
     self.layer.shadowOpacity = 0.5; 
     self.layer.shadowColor = [UIColor blackColor].CGColor; 
     self.layer.shadowOffset = CGSizeMake(0, 1); 
     self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath; 

     // make radius of the cell 
     self.layer.cornerRadius = 5; 

    } 
    return self; 
} 

Будет добавлен эффект, и если вы хотите добавить в него код ui, то код внутри него.

Смежные вопросы