iOS学习笔记:视觉效果小记

1. maskToBounds不仅会切掉超出边界的部分,还会切掉阴影,要想阴影出来可以在下面再加一个透明视图,用父视图的layer来展示阴影

2. layer大多数的默认颜色都是黑色

3. 阴影的初始值是CGSize(0, -3),阴影是往上便宜三个像素的,这是由于CoreAnimation最先诞生在OSX上,而OSX的坐标系跟iOS是镜像反转的

4. 图层蒙版mask,通过这个属性可以设置一个有内容的layer为父layer的mask属性,mask图层的颜色无所谓,它的作用是让父视图保留mask图层内实心部分的内容,以做到不规格的裁切

5. 拉伸过滤,分为minificationFilter和magnificationFilter两个过滤器,主要在显示大小不是图片实际大小的时候,作用于原图片,并根据需要生成一个新的图片以显示。
缩放有三种方式

1
2
3
kCAFilterNearest: String // 非线性缩放,速度快,也不会使图片模糊,但是会在图片放大之后产生严重的马赛克,差异特别小的图形用这个
kCAFilterLinear: String // 线性缩放,双线性滤波算法,缩放后的图片表现的很平滑,但是放大多倍后会模糊(默认),轮廓比较多的图用下面两个
kCAFilterTrilinear: String // 跟kCAFilterLinear差不多,不过精度更高,采用三维取样,便面小概率舍入错误带来的失灵问题

6. 组透明,iOS7及其以后UIViewGroupOpacity默认为YES,也就意味着只要设置父视图的alpha,所有子视图将整体透明。CALayershouldRasterize(类似PS的栅格化,拼合图层)依然默认为false,设置此值为true也可以达到相同的效果,但需要注意rasterizationScale属性设置为UIScreen.mainScreen.scale来确保不会再Retina屏幕上出现像素画问题。为何这两个不同时为true,因为据说会出现性能问题(我还没学会,学会了再写)。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注