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];

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容