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")
// 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)
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")
}
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
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")
rotate?.toValue = 0
rotate?.springBounciness = 20
rotate?.springSpeed = 18
self.layer.pop_addAnimation(rotate, forKey: "ratate")
}
}
}
posted on 2015-12-11 15:14 taiyang2014 阅读(772) 评论(0) 编辑 收藏 举报