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")
            }
        }
    }
  • 相关阅读:
    Wix 安装部署教程(七) 获取管理员权限
    【异常处理_iis】无法启动IIS Expressiisexpress.exe
    记一次Url重写_发布之后iis 404
    $.ajax 跨域请求 Web Api
    转手项目二三事
    【吉光片羽】之 Web API
    Failed to execute goal org.mortbay.jetty:maven-jetty-plugin
    eclipse解决editor does not contain a main type的方法
    linux 网卡eth0检测时没有IP地址,怎么回事??
    div+css 和 xhtml+css是一回事么?
  • 原文地址:https://www.cnblogs.com/tian-sun/p/5039118.html
Copyright © 2011-2022 走看看