iOS -阴影效果

UIButton

    //加阴影--任海丽编辑  
    //shadowColor阴影颜色 
    _imageView.layer.shadowColor = [UIColor blackColor].CGColor; 
    //shadowOffset阴影偏移,x向右偏移4,y向下偏移4,默认(0, -3),这个跟shadowRadius配合使用 
    _imageView.layer.shadowOffset = CGSizeMake(4,4); 
    //阴影透明度,默认0 
    _imageView.layer.shadowOpacity = 0.8; 
    //阴影半径,默认3
    _imageView.layer.shadowRadius = 4;  

UITableView

        _tableView.layer.shadowOffset = CGSizeMake(0, 0);
        _tableView.layer.shadowColor = [UIColor blackColor].CGColor;
        _tableView.layer.shadowOpacity = 0.8;
        _tableView.separatorColor = [UIColor colorWithWhite:0.3 alpha:1];
        _tableView.clipsToBounds = NO;

clipsToBounds
是指视图上的子视图,如果超出父视图的部分就截取掉,
masksToBounds
却是指视图的图层上的子图层,如果超出父图层的部分就截取掉

然而,这种最简单的添加阴影的方法在性能上却不是最佳途径。如果对这个添加阴影的View(如果它是一个UITableViewCell的一部分)做一些动画,您可能会注意到在动画不是很流畅,有卡顿。这是因为计算阴影需要Core Animation做一个离屏渲染,以View准确的形状确定清楚如何呈现其阴影。

只要你提前告诉CoreAnimation你要渲染的View的形状Shape,就会减少离屏渲染计算

[myView.layer setShadowPath:[[UIBezierPath bezierPathWithRect:myView.bounds] CGPath];

加上这行代码,就减少离屏渲染时间,大大提高了性能

你可能感兴趣的:(iOS -阴影效果)