zoukankan      html  css  js  c++  java
  • swift pop实现动感按钮动画

    //
    //  MyButton.swift
    //  PopInstall
    //
    //  Created by su on 15/12/11.
    //  Copyright © 2015年 tian. All rights reserved.
    //

    import UIKit

    class MyButton: UIButton {
        override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
            super.touchesBegan(touches, withEvent: event)
            //缩放动画
            var scale = self.pop_animationForKey("scale") as? POPSpringAnimation
            if scale != nil {
                scale?.toValue = NSValue(CGPoint: CGPointMake(0.8, 0.8))
            } else {
                scale = POPSpringAnimation(propertyNamed: kPOPViewScaleXY)
                scale?.toValue = NSValue(CGPoint: CGPointMake(0.8, 0.8))
                scale?.springBounciness = 20
                scale?.springSpeed = 18
                self.pop_addAnimation(scale, forKey: "scale")
            }
           
            //旋转动画  旋转是layer层动画
            var rotate = self.layer.pop_animationForKey("ratate") as? POPSpringAnimation
            if rotate != nil {
                rotate?.toValue = M_PI / 6
               
            } else {
                rotate = POPSpringAnimation(propertyNamed: kPOPLayerRotation)
                rotate?.toValue = M_PI / 6
                rotate?.springBounciness = 20
                rotate?.springSpeed = 18
                self.layer.pop_addAnimation(rotate, forKey: "ratate")
            }
        }
        override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
            super.touchesEnded(touches, withEvent: event)
            //缩放动画
            var scale = self.pop_animationForKey("scale") as? POPSpringAnimation
            if scale != nil {
                scale?.toValue = NSValue(CGPoint: CGPointMake(1, 1))
            } else {
                scale = POPSpringAnimation(propertyNamed: kPOPViewScaleXY)
                scale?.toValue = NSValue(CGPoint: CGPointMake(1, 1))
                scale?.springBounciness = 20
                scale?.springSpeed = 18
                self.pop_addAnimation(scale, forKey: "scale")
            }
            //旋转动画  旋转是layer层动画
            var rotate = self.layer.pop_animationForKey("ratate") as? POPSpringAnimation
            if rotate != nil {
                rotate?.toValue = 0
            } else {
                rotate = POPSpringAnimation(propertyNamed: kPOPLayerRotation)
                rotate?.toValue = 0
                rotate?.springBounciness = 20
                rotate?.springSpeed = 18
                self.layer.pop_addAnimation(rotate, forKey: "ratate")
            }
        }
    }
  • 相关阅读:
    第一章 管理程序流(In .net4.5) 之 实现多线程和异步处理
    第十三章 接口
    第十二章 泛型
    第十一章 事件
    SqlServer杀死所有正在使用中的进程
    SqlServer数据库一直显示“正在还原”问题
    大叔学Spring Boot笔记(二)基本概念
    大叔学Spring Boot笔记(一)初识Sprint Boot
    SqlServer中的对象类型代码
    SqlServer将Json串转成表结果
  • 原文地址:https://www.cnblogs.com/tian-sun/p/5039118.html
Copyright © 2011-2022 走看看