首页 > 代码库 > 按下和弹起效果的按钮分类(POP实现)
按下和弹起效果的按钮分类(POP实现)
使用POP实现按下/弹起效果的按钮分类。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | // // UIButton+SpringTouch.h // JCiOSProjectSample // // Created by jimple on 14/7/28. // Copyright (c) 2014年 JimpleChen. All rights reserved. // #import <UIKit/UIKit.h> @interface UIButton (SpringTouch) - ( void )initSpringTouch; - ( void )removeSpringTouch; @end //////////////////////////////////////////////////////////////////////////// // // UIButton+SpringTouch.m // JCiOSProjectSample // // Created by jimple on 14/7/28. // Copyright (c) 2014年 JimpleChen. All rights reserved. // #import "UIButton+SpringTouch.h" #import <POP.h> @implementation UIButton (SpringTouch) - ( void )initSpringTouch { [ self addTarget : self action : @selector (springTouchBtnTouchDown:) forControlEvents :UIControlEventTouchDown]; [ self addTarget : self action : @selector (springTouchBtnTouchUp:) forControlEvents :UIControlEventTouchUpInside|UIControlEventTouchUpOutside]; } - ( void )removeSpringTouch { [ self removeTarget : self action : @selector (springTouchBtnTouchDown:) forControlEvents :UIControlEventTouchDown]; [ self removeTarget : self action : @selector (springTouchBtnTouchUp:) forControlEvents :UIControlEventTouchUpInside|UIControlEventTouchUpOutside]; } - ( void )springTouchBtnTouchDown:( id )sender { UIView *btn = ( UIView *)sender; POPSpringAnimation *animation = [ POPSpringAnimation animationWithPropertyNamed :kPOPLayerScaleXY]; animation .toValue = [ NSValue valueWithCGPoint :CGPointMake( 0 .9 , 0 .9 )]; animation .springBounciness = 1 0 ; [btn .layer pop_addAnimation :animation forKey : @"ZoomOutY" ]; } - ( void )springTouchBtnTouchUp:( id )sender { UIView *btn = ( UIView *)sender; [btn .layer pop_removeAnimationForKey : @"ZoomOutY" ]; POPSpringAnimation *animation = [ POPSpringAnimation animationWithPropertyNamed :kPOPLayerScaleXY]; animation .toValue = [ NSValue valueWithCGPoint :CGPointMake( 1 , 1 )]; animation .springBounciness = 1 0 ; [btn .layer pop_addAnimation :animation forKey : @"ZoomOutYReverse" ]; } @end |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。