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")
            }
        }
    }
  • 相关阅读:
    图像处理之图像分割
    matlab 矩阵运算技巧
    回溯法:八皇后问题
    spring框架学习笔记(二)
    spring框架学习笔记(一)
    java下搭建Webservice服务
    log4j使用
    Mybatis使用
    java序列化与反序列化
    java常用数据类型
  • 原文地址:https://www.cnblogs.com/tian-sun/p/5039118.html
Copyright © 2011-2022 走看看