原文链接:How to add a shadow to a View

iOS 能够动态的为任何UIView添加阴影,这些阴影是自动适应元素的形状,即使像UILabel这种文本曲线, 阴影功能是内置在UIView中的。你只需要关心和设置他的属性就ok啦

有如下常用相关属性(针对UILayer层的):

  • shadowColor: 设置阴影的颜色,必须是CGColor类型的。
  • shadowOpacity: 设置过渡透明的,值在0~1
  • shadowOffset: 设置阴影与view的距离,给出3D偏移感(我的理解是相当于中心点的偏移)默认值(0,-3)
  • shadowRadius:  阴影半径

下面有一些示例代码:

let yourView = UIView()  // 创建一个UIView
yourView.layer.shadowColor = UIColor.black.cgColor  // 设置背景颜色
yourView.layer.shadowOpacity = 1 // 设置透明度
yourView.layer.shadowOffset = .zero  // 设置偏移
yourView.layer.shadowRadius = 10  // 设置半径

注意:由于需要围绕内容形状设置阴影,动态生成非常消耗GPU资源, 所以建议设置shadowPath的值,以便不用动态计算,下面有一个好的例子【有效避免离屏渲染】:

yourView.layer.shadowPath = UIBezierPath(rect: yourView.bounds).cgPath  // 设置路径

同是告诉 iOS 缓存渲染阴影,使得不用重新绘制(设置光栅化)

yourView.layer.shouldRasterize = true  // 设置光栅化缓存

如果你设置的光栅化缓存,同是你应该设置光栅化比例(rasterizationScale),以保证和屏幕的scale一致,不然会有像素差别(不清晰)。

yourView.layer.rasterizationScale = UIScreen.main.scale  //设置光栅化比例

如何高性能添加UIView阴影相关推荐

  1. Cocos2D 添加 UIView

    cocos2d是使用继承于ccnode的结点类型的层.但是我想用一个opengl来绘制,就简单的情况来说必须得加一个uiview.现转载如下: 第一部分:: 使用Cocos2D开发游戏和应用程序的时候 ...

  2. 给三角形添加边框阴影

    需求:利用div边框形成了一个三角形,然后给这个三角形添加边框阴影 解决方法:利用filter这个css3属性,配合属op-shadow实现效果 首先弄一个普通的三角形出来: 可以发现:通过设置div ...

  3. Qt去掉标题栏之后添加边框阴影的解决方案

    前言   我们经常需要自定义标题栏,那么去掉标题栏是非常有必要.但是去掉标题栏之后边框阴影也会消失,感觉光秃秃的,不太舒服.接下来我们将讨论添加边框阴影的几种解决方案. 解决方案 如果是Windows ...

  4. xib 设置阴影_影响uiview阴影的约束?

    我正在试图在我的视图控制器中的uiview的所有四个面上建立一个阴影,在我通过xcode向uiview添加约束之前,它工作得非常好.如何使uiview的阴影显示在所有四个边上,并为所有边设置约束? 本 ...

  5. iOS View添加四周阴影

    在开发过程中,给一个View添加阴影效果可能会经常遇到,那我们如何实现一个简单的阴影效果呢? 代码如下: /// 添加四边阴影效果 + (void)addShadowToView:(UIView*)s ...

  6. ps添加的阴影怎么去除_【PS摄影后期教程】去除阴影色块三种方法

    点击蓝字关注这个神奇的公众号- 如何去除面部阴影色块 后期时模特面部有不均匀阴影色块 相信这个问题小伙伴们肯定都遇到过 不管是光的原因还是技术的问题 都是无可避免的 阴影有时候能帮助你调整视觉重心 或 ...

  7. 怎么将多个html组合_技巧分享之在HTML元素中添加逼真阴影的教程

    添加一个简单的阴影 让我们为投影准备一个简单的HTML元素: 然后添加CSS: 输出结果是三个框,通过调用每个框的ID可以很容易地放置阴影.要添加阴影,让我们将属性box-shadow赋予框1: 我们 ...

  8. Python尝试给扫描件添加自然阴影

    程序生成的干净背景文字图片,想达到自然拍照一样有光线阴影. 尝试一种方法实现添加阴影到图片. 思路 阴影是光线变暗,就是让阴影区像素值乘以一个系数,减小当前值造成阴影效果(可能不自然,也就这水平了) ...

  9. 给view添加单边阴影

    -(void)addSingleSidesShadowToView:(UIView *)theView withColor:(UIColor*)theColor{//阴影颜色theView.layer ...

最新文章

  1. Practical Common Lisp
  2. vivado VIO (virtual input output)虚拟IO的使用
  3. ddr读时序波形_测试新体验|如何解决DDR内存系统测试难题?
  4. 多线程设置操作时间间隔_听说,有位Java程序员学完这59道多线程面试题之后,直接面上阿里...
  5. Parrot 发布新版本——基于Debian的Linux 发行版
  6. UVA10196 Check The Check【模拟+回溯】
  7. iOS端im实时音视频功能快速开发实操指导!
  8. android 15.6寸平板,关于HUAWEI 华为M6 10.8英寸平板的槽点,不吐不快
  9. 平面判断两点连线是否交叉
  10. 华为手机上的网上邻居怎么用_华为手机如何无线连接电脑
  11. 斐讯路由器k2编程器救砖教程
  12. 修复IE主页被篡改劫持的方法之一:自定义xxx.reg文件
  13. 破解路由器管理登录密码
  14. 编译原理-18-语法分析实验代码示例
  15. 数控车床 刀尖补偿用法 G41 G42 G40
  16. mysql 树形结构表设计与优化
  17. M1 Macbook崩溃了怎么办?
  18. 乓乓响再度冲刺港股:来自临时及应急服务客户毛利率达70%
  19. Ubuntu安装及常用软件安装
  20. python手撕分水岭算法

热门文章

  1. springCloud学习笔记系列(1)-负载均衡Ribbon
  2. EasyBridge:一种简单的js-bridge设计方案
  3. 11.32 php扩展模块装安
  4. 序列化和反序列化二叉搜索树 Serialize and Deserialize BST
  5. 聊聊 #pragma 和 // MARK:
  6. [Swift]枚举、类与结构体的对比
  7. android studio github 项目导入问题
  8. JAVA escape/unescape
  9. 移动应用性能测试白皮书
  10. 自定义类似于listView中Item背景