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")
            }
        }
    }
  • 相关阅读:
    java环境变量配置(Windows & Linux)
    转行自学编程的前提条件和能力
    IntelliJ IDEA 视频教程
    小孩都懂得用“头衔”来包装自己了,那么你呢?
    自创“乒乓球自嗨玩法”
    什么是npm以及npm基本命令
    hexo本地搭建以及在github远程部署
    如何下载Java-配置环境全教程
    图的存储结构以及遍历
    二叉树的存储结构以及遍历
  • 原文地址:https://www.cnblogs.com/tian-sun/p/5039118.html
Copyright © 2011-2022 走看看