2013-12-19 2 views
1

Итак, у меня есть пользовательский UITableCellView, который имеет кучу субвью внутри. Я пытаюсь добавить тень к этой клетке -Добавление тени для пользовательских UITableCellView не работает

-(void)drawRect:(CGRect)rect{ 
    [self.layer setShadowColor:[UIColor blackColor].CGColor]; 
    [self.layer setShadowOpacity:0.8]; 
    [self.layer setShadowRadius:3.0]; 
    [self.layer setShadowOffset:CGSizeMake(4.0, 4.0)]; 
    self.layer.masksToBounds = YES; 


} 

Так что отменяют метод Жеребьевка прямоугольника, чтобы сделать это, - но это не работает.

Как добавить тень для каждой ячейки?

+1

try self.contentview.layer –

+0

Почему 'drawRect:'? Переопределение этого метода является дорогостоящей операцией? Попробуйте что-то упомянутое в следующей ссылке http://stackoverflow.com/questions/3546880/iphone-uitableviewcell-layer-shadow. Надеюсь, поможет! – iCoder

+0

wait - так что бы я переопределить? – praks5432

ответ

0

Попробуйте этот код в cellForRowAtIndexPath

cell.layer.shadowOffset = CGSizeMake(1, 0); 
cell.layer.shadowColor = [[UIColor blackColor] CGColor]; 
cell.layer.shadowRadius = 5; 
cell.layer.shadowOpacity = .25; 


CGRect shadowFrame = cell.layer.bounds; 
CGPathRef shadowPath = [UIBezierPath bezierPathWithRect:shadowFrame].CGPath; 
cell.layer.shadowPath = shadowPath; 
0

так как и ВГА пользовательские ячейки, то и может добавить тень, как это,


//this is in custom cell assume u hav "CustomCell" class 
    //in CustomCell.m 

    - (void)layoutSubviews 
    { 
     [super layoutSubviews]; 

     //add shadow properties by using layers 
     self.layer.shadowOpacity = 0.8f; //self is the custom cell 
     self.layer.shadowColor = [UIColor blackColor].CGColor; //set the shadow color 

     // .. other layer properties and effects u want 

    } 


0

попробовать этот

-(void)drawRect:(CGRect)rect 
{ 
    [[self layer] setShadowColor:[[UIColor blackColor] CGColor]]; 
    [[self layer] setShadowOpacity:0.8f]; 
    [[self layer] setShadowRadius:3.0f]; 
    [[self layer] setShadowOffset:CGSizeMake(4.0f, 4.0f)]; 
    [[self layer] setShouldRasterize:YES]; 
    [[self layer] setRasterizationScale:[[UIScreen mainScreen] scale]]; 
} 
Смежные вопросы