iOS view中震动类似实现
来源:互联网 发布:车牌号码测吉凶算法 编辑:程序博客网 时间:2024/06/06 09:05
#import <Foundation/Foundation.h>@interface AnimationUtils : NSObject+ (void)shake:(UIView *)view;@end
//// AnimationUtils.m// TPL-AUTO-CLAIM-iPad//// Created by Byron on 12-11-29.// Copyright (c) 2012年 cisetech. All rights reserved.//#import "AnimationUtils.h"@implementation AnimationUtils//震动效果+ (void)shake:(UIView *)view{ CGRect frame = view.frame; CAKeyframeAnimation *shakeAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; CGMutablePathRef shakePath = CGPathCreateMutable(); CGPathMoveToPoint(shakePath, NULL, frame.origin.x+frame.size.width/2, frame.origin.y+frame.size.height/2); int index; for (index = 3; index >=0; --index) { CGPathAddLineToPoint(shakePath, NULL, frame.origin.x+frame.size.width/2 - frame.size.width * 0.02f * index, frame.origin.y+frame.size.height/2); CGPathAddLineToPoint(shakePath, NULL, frame.origin.x+frame.size.width/2 + frame.size.width * 0.02f * index, frame.origin.y+frame.size.height/2); } CGPathCloseSubpath(shakePath); shakeAnimation.path = shakePath; shakeAnimation.duration = 0.5f; shakeAnimation.removedOnCompletion = YES; [view.layer addAnimation:shakeAnimation forKey:nil]; CFRelease(shakePath);}@end
直接调用就可以了