iOS控件抖动效果

作者: 爱吃萝卜的小蘑菇 | 来源:发表于2019-04-17 16:55 被阅读0次

方案一:

CABasicAnimation *shake = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
    shake.fromValue = [NSNumber numberWithFloat:-5];
    shake.toValue = [NSNumber numberWithFloat:5];
    shake.duration = 0.1;//执行时间
    shake.autoreverses = YES;//是否重复
    shake.repeatCount = 2;//次数
    [self.schemeOneLable.layer addAnimation:shake forKey:@"shakeAnimation"];

方案二

    CAKeyframeAnimation *shakeAnim = [CAKeyframeAnimation animation];
    shakeAnim.keyPath = @"transform.translation.x";
    shakeAnim.duration = 0.1;
    CGFloat delta = 5;
    shakeAnim.values = @[@0,@(-delta),@(delta),@0];
    shakeAnim.repeatCount = 2;
    [self.schemeTwoLable.layer addAnimation:shakeAnim forKey:nil];

两个方案设置了同样的数据最后的显示结果也不太一样,目前还不清楚原因。

对应.m文件
#import "ViewController.h"

@interface ViewController ()

@property (nonatomic,strong) UILabel *schemeOneLable;
@property (nonatomic,strong) UILabel *schemeTwoLable;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.schemeOneLable = [[UILabel alloc]init];
    self.schemeOneLable.frame = CGRectMake(50, 50, 200, 20);
    self.schemeOneLable.text = @"我想抖~方案一";
    [self.view addSubview:self.schemeOneLable];
    
    self.schemeTwoLable = [[UILabel alloc]init];
    self.schemeTwoLable.frame = CGRectMake(50, 100, 200, 20);
    self.schemeTwoLable.text = @"我想抖~方案二";
    [self.view addSubview:self.schemeTwoLable];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    CABasicAnimation *shake = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
    shake.fromValue = [NSNumber numberWithFloat:-5];
    shake.toValue = [NSNumber numberWithFloat:5];
    shake.duration = 0.1;//执行时间
    shake.autoreverses = YES;//是否重复
    shake.repeatCount = 2;//次数
    [self.schemeOneLable.layer addAnimation:shake forKey:@"shakeAnimation"];
    
    CAKeyframeAnimation *shakeAnim = [CAKeyframeAnimation animation];
    shakeAnim.keyPath = @"transform.translation.x";
    shakeAnim.duration = 0.1;
    CGFloat delta = 5;
    shakeAnim.values = @[@0,@(-delta),@(delta),@0];
    shakeAnim.repeatCount = 2;
    [self.schemeTwoLable.layer addAnimation:shakeAnim forKey:nil];
}

@end

相关文章

  • iOS控件抖动效果

    方案一: 方案二 两个方案设置了同样的数据最后的显示结果也不太一样,目前还不清楚原因。 对应.m文件

  • Android ObjectAnimator 控件抖动效果

    控件抖动效果,包含放大缩小旋转以及循环判断

  • View控件的抖动效果

    一、前言:我们在实现账号或者密码输入的时候,经常有错误校验,有时候我们会弹出一个 Toast 来提示用户,有一个更...

  • iOS 左右抖动效果

  • iOS - 视图抖动效果

    实现视图抖动效果的思路 一、首先,如何让视图发生位移 UIView中定义了transform属性,其类型为CGAf...

  • iOS View 抖动效果

    在最近的项目中使用到View抖动的效果,就从StackOverflow搬运了一个在此记录一下。

  • iOS图标抖动效果

    开始抖动 停止抖动 UIViewAnimationOptions解释 有评论的朋友说解释一下UIViewAnima...

  • iOS图标抖动效果

    开始抖动 停止抖动 以上是左右抖动效果,另有放大缩小效果见Demo:https://github.com/fate...

  • ios弹窗抖动效果

    效果弹窗不想弹出那么单调,我们可以进行一些小的动画效果,让页面更加鲜活 动画效果中我选择用的是UIView动画,弹...

  • 仿ios删除抖动效果

    iphone手机上长按图标会出现一个所有图标抖动的效果,今天就来用网页做一个简单的图标抖动效果,先看看效果 仿io...

网友评论

    本文标题:iOS控件抖动效果

    本文链接:https://www.haomeiwen.com/subject/tyeqwqtx.html