GradientAnimator
GradientAnimator 帮助您用鲜艳的渐变主题颜色填充视图,并使它们动画化,为您的应用程序设计提供令人惊艳的视觉效果
预览
安装
Cocoapods 安装 "pod 'GradientAnimator', '~> 1.3.1'"
兼容性
- iOS 11.0+
- Swift 5
使用方法
-
安装库后,将其导入控制器
-
Gradient Animator 有预定义的主题 “GradientThemes”,您可以使用我们的主题
let gradientView = GradientAnimator(frame: self.view.frame, theme: GradientThemes.Sunrise, _startPoint: GradientPoints.bottomLeft, _endPoint: GradientPoints.topRight, _animationDuration: 3.0)
- 您也可以使用以下初始化器设置您选择的自定义 UIColor 组合,按照顺序
let gradientView = GradientAnimator(frame: self.frame, inputColors: [#colorLiteral(red: 0.9195817113, green: 0.04345837981, blue: 0.7682360411, alpha: 1),#colorLiteral(red: 0.1406921148, green: 0.05199617893, blue: 0.8817588687, alpha: 1),#colorLiteral(red: 0.9254902005, green: 0.2352941185, blue: 0.1019607857, alpha: 1),#colorLiteral(red: 0.2745098174, green: 0.4862745106, blue: 0.1411764771, alpha: 1),#colorLiteral(red: 0.9725490196, green: 0.7647058824, blue: 0.8039215686, alpha: 1)], _startPoint: GradientPoints.bottomLeft, _endPoint: GradientPoints.topRight, _animationDuration: 2.0)
- 渐变点 - 渐变点用于确定动画起始和结束的位置,以及下一个过渡的起始点状态和结束点状态
enum GradientPoints: Int {
case left
case top
case right
case bottom
case topLeft
case topRight
case bottomLeft
case bottomRight
}
- 初始化渐变视图后,我们需要在子视图的索引零位置插入渐变视图,然后调用startAnimate()方法以开始您的动画
let gradientView = GradientAnimator(frame: self.view.frame, theme: GradientThemes.Sunrise, _startPoint: GradientPoints.bottomLeft, _endPoint: GradientPoints.topRight, _animationDuration: 3.0)
self.view.insertSubview(gradientView, at: 0)
gradientView.startAnimate()
- 为了您的方便,我们编写了一个UIView的扩展,这样您就可以在您希望渐变动画存在的任何视图中简单调用它,使用上面的代码
extension UIView{
func setGradient(){
self.removeGradient()
let gradientView = GradientAnimator(frame: self.frame, theme: GradientThemes.Sunrise, _startPoint: GradientPoints.bottomLeft, _endPoint: GradientPoints.topRight, _animationDuration: 3.0)
gradientView.tag = 007
self.insertSubview(gradientView, at: 0)
gradientView.startAnimate()
}
func removeGradient(){
if let gradView : GradientAnimator = self.subviews.filter({$0.tag == 007}).first as? GradientAnimator{
gradView.removeFromSuperview()
}
}
}
作者
iLeaf Solutions http://www.ileafsolutions.com