NSViewAnim
需求
iOS 12+
安装
NSViewAnim 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'NSViewAnim'
用法
⭐️ import NSViewAnim⭐️
动画链选项
func nextVC(){
guard let nextVC = self.storyboard?.instantiateViewController(identifier: "Second") else {return}
nextVC.setPresentStyle(presentMode: .custom) // CircleAnim Require Option
.setTransStyle(transMode: .coverVertical)
.setTransDelegate(self) // CircleAnim Require Option
.done() // Finish Chaining
}
圆形效果动画
- 扩展 UIViewControllerTransitioningDelegate
- 实现 func
- animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController)
- animationController(forDismissed dismissed: UIViewController)
class ViewController: UIViewControllerTransitioningDelegate {
let circleView = NSCircleAnim()
// presentAnim
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return circleView.animState(mode: .present)
.animStartPoint(point: self.nextButton.center)
.animColor(color: self.nextButton.backgroundColor!)
}
// dismissAnim
func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return circleView.animState(mode: .dismiss)
.animStartPoint(point: self.nextButton.center)
.animColor(color: self.nextButton.backgroundColor!)
}
func nextVC(){
nextVC.setPresentStyle(presentMode: .custom) // CircleAnim Require Option
.setTransStyle(transMode: .coverVertical)
.setTransDelegate(self) // CircleAnim Require Option
.done()
}
}
-
NSCircleAnim
❗️ __Required__❗️ - 下一个 ViewController 声明 setTransDelegate 和 presentMode: .custom
circleView.animState() .animStartPoint() .animColor() .animDuration() .done()
-
animState: present 或 dismiss
-
animStartPoint: 动画效果起始位置
-
animColor: 动画效果颜色
-
animDuration: 动画持续时间
-
done: 完成链式调用
向下拖动关闭
- 扩展 NSDownView
- 添加 downViewController() 或 downViewController(_, degree)
- 调用 downScrollDismissAnim()
class ViewController: UIViewController, NSDownView {
func downViewControllerEvent(_ gesture: UIPanGestureRecognizer) {
// add gesture
downViewController(gesture)
downViewController(gesture, degree: 1/3)
}
override func viewDidLoad() {
super.viewDidLoad()
// apply Anim
self.downScrollDismissAnim()
}
}
- downViewController(): 添加手势识别器
- downScrollDismissAnim(): 应用手势识别器
作者
namsoo5, [email protected]
许可
NSViewAnim 采用 MIT 许可协议。更多信息请参阅 LICENSE 文件。