WEB开发网
开发学院手机开发iPhone 开发 iPhone 中的 Mask 效果替代方法 阅读

iPhone 中的 Mask 效果替代方法

 2010-02-28 22:25:00 来源:WEB开发网   
核心提示:最近一个iphone的项目中做到了一个效果,就是在场景中加入前后两个UIImageView,iPhone 中的 Mask 效果替代方法,分别装载两张PNG图片,用手轻轻擦拭前面的 UIImageView图层,如果算不对可能就会看到瑕疵,比如说手指在屏幕上反复做擦拭效果,就像擦玻璃一样即可透过该层看到后面的图片,这个效果

最近一个iphone的项目中做到了一个效果,就是在场景中加入前后两个UIImageView,分别装载两张PNG图片,用手轻轻擦拭前面的 UIImageView图层,就像擦玻璃一样即可透过该层看到后面的图片。这个效果多用在类似汽车雨刮刮蒸汽,又或者洗澡间玻璃上的雾气效果。

原理上很实现它很简单:

首先先加载前后两层,让雾气层在前,并在雾气层的类中常规的写入比如touchesBegan等方法使其可以拖动。再touchesMoved中分别在拖动起始点和终止点处以点为中心绘制一个圆,两个点之间绘制一个矩形,即矩形的长是两点之间的距离,宽是圆的直径。如果正常绘出后的效果就是你应该能看到一个两边圆滑的矩形效果。然后用CGContextClip的剪切方法将绘图部分抠除即可。

这个效果可能有点麻烦的是你需要在绘制时做矩形和圆的平移和旋转,使其和你的手指拖动时的接触起点、平移距离、平移方向、结束点的位置吻合。如果算不对可能就会看到瑕疵,比如说手指在屏幕上反复做擦拭效果,那么每两次touchesMove绘的图衔接不平滑等等。

Tags:iPhone Mask 效果

编辑录入:coldstar [复制链接] [打 印]
赞助商链接