zoukankan      html  css  js  c++  java
  • iOS view中震动类似实现

    #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
    
    直接调用就可以了

  • 相关阅读:
    第三个Sprint ------第十一天
    第三个Sprint ------第十天
    第三个Sprint ------第九天
    第三个Sprint ------第八天
    第三个Sprint ------第七天
    第三个Sprint ------第六天
    第三个Sprint ------第五天
    第三个Sprint ------第四天
    第三个Sprint ------第三天
    第三个Sprint ------第二天
  • 原文地址:https://www.cnblogs.com/zhangsongbai/p/3102591.html
Copyright © 2011-2022 走看看