阴影
阴影作为一个iOS的常见特性,可以达到图层深度暗示的效果,更多的目的是单纯的装饰(┑( ̄Д  ̄)┍)
shadowOpacity
—- 默认值是0,范围是(0-1),改变这个值,阴影就可以显示在任意图层之下 ,若想自定义,请往下看
阴影裁剪
- 常见问题 : 阴影裁剪根据内容的外形来裁剪,而不是根据边界和角半径;一般情况下的阴影通常在图层的边界之外,如果开启了
masksToBounds
属性,那么阴影就会被剪裁掉 - 解决办法 : 将需要裁剪的图层再用单独的视图包起来,然后切最外层的这个视图;
shadowPath属性
- 问题
图层阴影是从图层内容的形状继承而来的,可以是方的可以使圆的;实时计算阴影非常耗资源,尤其是图层有多个子图层 - 解决
shadowPath
是个CGPathRef
类型,一个指向CGPath
的指针;如果是一个矩形或者圆,用CGPaht
相对简单明了;如果是一个更加复杂的图形,UIBezierPath
会更加合适
拉伸过滤
- 视图显示: 视图显示图片,应该是按照正确的比例和正确的1:1像素显示在屏幕上
- 这样能显示最好的画质,像素没有被压缩和拉伸
- 这样能更好的使用内存
- 最好的性能,CPU不需要作出额外的计算
事与人违,显示一个非真实大小的图片是我们常见的需求
kCAFilterLinear
图片放大(magnification)和缩小(minification)默认的过滤器,双线性滤波算法,通过对多个像素取样生成新的值(不适合放大倍数比较大的)kCAFilterTrilinear
和双线滤波相似,不过会储存多个大小情况的图片,好处在于能从一系列接近最终大小的图片中得到想要的结果,提高了性能,也避免了小概率因舍入错误取样失误的问题kCAFilterNearest
最近过滤,取样最近的单像素点,速度快,但是压缩图片更遭,图片放大显得块儿状或马赛克严重
组透明
UIView
有alpha
属性确定视图的透明度;CALayer
有等同的属性opacity
,这俩个属性会影响子层级