如何高性能添加UIView阴影
原文链接: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阴影相关推荐
- Cocos2D 添加 UIView
cocos2d是使用继承于ccnode的结点类型的层.但是我想用一个opengl来绘制,就简单的情况来说必须得加一个uiview.现转载如下: 第一部分:: 使用Cocos2D开发游戏和应用程序的时候 ...
- 给三角形添加边框阴影
需求:利用div边框形成了一个三角形,然后给这个三角形添加边框阴影 解决方法:利用filter这个css3属性,配合属op-shadow实现效果 首先弄一个普通的三角形出来: 可以发现:通过设置div ...
- Qt去掉标题栏之后添加边框阴影的解决方案
前言 我们经常需要自定义标题栏,那么去掉标题栏是非常有必要.但是去掉标题栏之后边框阴影也会消失,感觉光秃秃的,不太舒服.接下来我们将讨论添加边框阴影的几种解决方案. 解决方案 如果是Windows ...
- xib 设置阴影_影响uiview阴影的约束?
我正在试图在我的视图控制器中的uiview的所有四个面上建立一个阴影,在我通过xcode向uiview添加约束之前,它工作得非常好.如何使uiview的阴影显示在所有四个边上,并为所有边设置约束? 本 ...
- iOS View添加四周阴影
在开发过程中,给一个View添加阴影效果可能会经常遇到,那我们如何实现一个简单的阴影效果呢? 代码如下: /// 添加四边阴影效果 + (void)addShadowToView:(UIView*)s ...
- ps添加的阴影怎么去除_【PS摄影后期教程】去除阴影色块三种方法
点击蓝字关注这个神奇的公众号- 如何去除面部阴影色块 后期时模特面部有不均匀阴影色块 相信这个问题小伙伴们肯定都遇到过 不管是光的原因还是技术的问题 都是无可避免的 阴影有时候能帮助你调整视觉重心 或 ...
- 怎么将多个html组合_技巧分享之在HTML元素中添加逼真阴影的教程
添加一个简单的阴影 让我们为投影准备一个简单的HTML元素: 然后添加CSS: 输出结果是三个框,通过调用每个框的ID可以很容易地放置阴影.要添加阴影,让我们将属性box-shadow赋予框1: 我们 ...
- Python尝试给扫描件添加自然阴影
程序生成的干净背景文字图片,想达到自然拍照一样有光线阴影. 尝试一种方法实现添加阴影到图片. 思路 阴影是光线变暗,就是让阴影区像素值乘以一个系数,减小当前值造成阴影效果(可能不自然,也就这水平了) ...
- 给view添加单边阴影
-(void)addSingleSidesShadowToView:(UIView *)theView withColor:(UIColor*)theColor{//阴影颜色theView.layer ...
最新文章
- Practical Common Lisp
- vivado VIO (virtual input output)虚拟IO的使用
- ddr读时序波形_测试新体验|如何解决DDR内存系统测试难题?
- 多线程设置操作时间间隔_听说,有位Java程序员学完这59道多线程面试题之后,直接面上阿里...
- Parrot 发布新版本——基于Debian的Linux 发行版
- UVA10196 Check The Check【模拟+回溯】
- iOS端im实时音视频功能快速开发实操指导!
- android 15.6寸平板,关于HUAWEI 华为M6 10.8英寸平板的槽点,不吐不快
- 平面判断两点连线是否交叉
- 华为手机上的网上邻居怎么用_华为手机如何无线连接电脑
- 斐讯路由器k2编程器救砖教程
- 修复IE主页被篡改劫持的方法之一:自定义xxx.reg文件
- 破解路由器管理登录密码
- 编译原理-18-语法分析实验代码示例
- 数控车床 刀尖补偿用法 G41 G42 G40
- mysql 树形结构表设计与优化
- M1 Macbook崩溃了怎么办?
- 乓乓响再度冲刺港股:来自临时及应急服务客户毛利率达70%
- Ubuntu安装及常用软件安装
- python手撕分水岭算法
热门文章
- springCloud学习笔记系列(1)-负载均衡Ribbon
- EasyBridge:一种简单的js-bridge设计方案
- 11.32 php扩展模块装安
- 序列化和反序列化二叉搜索树 Serialize and Deserialize BST
- 聊聊 #pragma 和 // MARK:
- [Swift]枚举、类与结构体的对比
- android studio github 项目导入问题
- JAVA escape/unescape
- 移动应用性能测试白皮书
- 自定义类似于listView中Item背景