zoukankan      html  css  js  c++  java
  • 文本 抖动效果

    方法1

    -(void)earthquake:(UIView*)itemView
    {
        CGFloat t =2.0;
    
        CGAffineTransform leftQuake  =CGAffineTransformTranslate(CGAffineTransformIdentity, t,-t);
        CGAffineTransform rightQuake =CGAffineTransformTranslate(CGAffineTransformIdentity,-t, t);
    
        itemView.transform = leftQuake;  // starting point
    
        [UIView beginAnimations:@"earthquake" context:itemView];
        [UIView setAnimationRepeatAutoreverses:YES];// important
        [UIView setAnimationRepeatCount:5];
        [UIView setAnimationDuration:0.07];
        [UIView setAnimationDelegate:self];
        [UIView setAnimationDidStopSelector:@selector(earthquakeEnded:finished:context:)];
    
        itemView.transform = rightQuake;// end here & auto-reverse
    
        [UIView commitAnimations];
    }
    
    -(void)earthquakeEnded:(NSString*)animationID finished:(NSNumber*)finished context:(void*)context 
    {
        if([finished boolValue]) 
        {
            UIView* item =(UIView*)context;
            item.transform =CGAffineTransformIdentity;
        }

    }




    方法2

    -(void)shakeView:(UIView*)viewToShake
    {
        CGFloat t =2.0;
        CGAffineTransform translateRight  =CGAffineTransformTranslate(CGAffineTransformIdentity, t,0.0);
        CGAffineTransform translateLeft =CGAffineTransformTranslate(CGAffineTransformIdentity,-t,0.0);
    
        viewToShake.transform = translateLeft;
    
        [UIView animateWithDuration:0.07 delay:0.0 options:UIViewAnimationOptionAutoreverse|UIViewAnimationOptionRepeat animations:^{
            [UIView setAnimationRepeatCount:2.0];
            viewToShake.transform = translateRight;
        } completion:^(BOOL finished){
            if(finished){
                [UIView animateWithDuration:0.05 delay:0.0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
                    viewToShake.transform =CGAffineTransformIdentity;
                } completion:NULL];
            }
        }];

    }

     

  • 相关阅读:
    .NET CORE技术路线图
    .Net Core之Configuration
    30+程序员
    Source Insight无限试用期修改方法
    WALT(Window Assisted Load Tracking)学习
    使用Mac的Remote Desktop Manager连接ubuntu16.04 & Win10的远程桌面
    进程调度函数scheduler_tick()的触发原理:周期PERIODIC定时器
    Linux、Android系统调用从上层到底层的调用路径浅析
    Ftrace的部分使用方法
    CPU efficiency测量标准:DMIPS
  • 原文地址:https://www.cnblogs.com/daxueshan/p/6077407.html
Copyright © 2011-2022 走看看