iOS View的maskView实现刷屏动画效果
iOS 的maskView
功能,确实是做动画时一个挺能打的利器。尤其是做那种“刷屏”式的过渡效果,视觉冲击感直接拉满。你可以通过一个透明或半透明的遮罩,配合UIView.animate
或CAAnimation
,实现内容逐渐显现的动画,看起来像是整个界面被一层薄纱刷开了,蛮有感觉的。
动画的核心思路,其实就是动遮罩——maskView
本身是个UIView
,加到你主视图上当遮罩。你改它的alpha
、改它的形状,外面的内容也就跟着变了。最玩法,就是用alpha
从 0 到 1,来个渐显动画:
UIView.animate(withDuration: 0.5) {
maskView.alpha = 1
}
再进阶一点,比如你想做圆形扩散,就得上CAShapeLayer
,改path
来搞形状变化:
let shapeLayer = CAShapeLayer()
shapeLayer.path = startPath
maskView.layer.mask = shapeLayer
let animation = CABasicAnimation(keyPath: "path")
animation.fromValue = startPath
animation.toValue = endPath
shapeLayer.add(animation, forKey: "shapeChange")
玩法还挺多,你可以配合滚动、手势做互动效果。只要 mask 能动,刷屏动画就能玩出花。对了,记得动画尽量做轻量点,别太吃资源,不然掉帧一多,效果就全毁了。
如果你对动画感兴趣,推荐你也看看这些资料:
如果你打算搞点让用户眼前一亮的动画效果,maskView这招一定要掌握,会让你的 UI 动得更高级、更顺滑。
MaskViews.zip
预估大小:37个文件
MaskViews
文件夹
.DS_Store
6KB
MaskView
文件夹
MaskView.xcodeproj
文件夹
project.xcworkspace
文件夹
contents.xcworkspacedata
153B
xcuserdata
文件夹
ie.xcuserdatad
文件夹
UserInterfaceState.xcuserstate
37KB
project.pbxproj
18KB
2.41MB
文件大小:
评论区