iOS CALayer 抖动效果

方式一

 1 - (void)shakeAnimationForView:(UIView *)view
 2 {
 3     CALayer *layer = [view layer];
 4     CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
 5     animation.keyPath = @"position.x";
 6     animation.values = @[ @0, @5, @10, @-10, @10, @5, @0 ];
 7     animation.keyTimes = @[ @0, @(1 / 6.0),@(2 / 6.0), @(3 / 6.0), @(5 / 6.0),@(2 / 6.0), @1 ];
 8     animation.duration = 0.4;
 9
10     animation.additive = YES;
11
12     [layer addAnimation:animation forKey:@"shake"];
13 }

方式二

 1 - (void)shakeAnimationForView:(UIView *) view
 2
 3 {
 4     //获取到当前View的layer
 5     CALayer *viewLayer = view.layer;
 6
 7     //获取当前View的位置
 8     CGPoint position = viewLayer.position;
 9
10     //移动的两个终点位置
11     CGFloat scale = 5.0f;
12     CGPoint beginPosition = CGPointMake(position.x + scale, position.y);
13     CGPoint endPosition = CGPointMake(position.x - scale, position.y);
14
15     //设置动画
16     CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
17
18     //设置运动形式
19     [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]];
20
21     //设置开始位置
22     [animation setFromValue:[NSValue valueWithCGPoint:beginPosition]];
23
24     //设置结束位置
25     [animation setToValue:[NSValue valueWithCGPoint:endPosition]];
26
27     //设置自动反转
28     [animation setAutoreverses:YES];
29
30     //设置时间
31     [animation setDuration:0.1];
32
33     //设置次数
34     [animation setRepeatCount:3];
35
36     //添加上动画
37     [viewLayer addAnimation:animation forKey:nil];
38
39 }
时间: 2024-11-07 11:21:03

iOS CALayer 抖动效果的相关文章

iOS图标抖动效果

开始抖动 -(void)BeginWobble { srand([[NSDate date] timeIntervalSince1970]); float rand=(float)random(); CFTimeInterval t=rand*0.0000000001; [UIView animateWithDuration:0.1 delay:t options:0 animations:^ { 要抖动的视图.transform=CGAffineTransformMakeRotation(-0

猫猫学IOS(四十)UI之核心动画_抖动效果_CAKeyframeAnimation

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 效果: 效果一: 效果二: 代码: // // NYViewController.m // 图片抖动 // // Created by apple on 15-5-8. // Copyright (c) 2015年 znycat. All rights reserved. // #import "NYViewControlle

android 实现带清除效果的EditText(附带抖动效果)

Android一直没有提供类似于ios中自带清除效果的输入框(ios只要只要添加属性即可实现),所以在Android当中 想要实现此效果就需要使用自定义控件的方式实现. 思路:可以使用一个Linearlayout里面横向布局一个EditText和一个删除的图片,监听输入框的焦点和文字变化,设置图片的显隐和点击清除事件.但是这么做些弊端,首先增加了UI布局的层级结构不利于UI结构的优化而且可能会出现文字过长遮挡住图片的情况.所以采用自定义控件继承于EditText,使用getCompoundDra

UIView抖动效果

  /** * View抖动效果 */ - (void)shakeAnimationForView:(UIView *) view { CALayer *viewLayer = view.layer; CGPoint position = viewLayer.position; CGPoint x = CGPointMake(position.x + 10, position.y); CGPoint y = CGPointMake(position.x - 10, position.y); CA

ios各种动画效果

ios各种动画效果 最普通动画: //开始动画 [UIView beginAnimations:nil context:nil];  //设定动画持续时间 [UIView setAnimationDuration:2]; //动画的内容 frame.origin.x += 150; [img setFrame:frame]; //动画结束 [UIView commitAnimations]; 连续动画:一个接一个地显示一系列的图像 NSArray *myImages = [NSArray arr

iOS CALayer讲解

iOS CALayer讲解 分类: CALayer2014-09-09 13:57 450人阅读 评论(0) 收藏 举报 CALayer 一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 @pro

振动和抖动效果

1.得到系统的振动器 Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); 2.设置振动时间 vibrator.vibrate(500); // vibrator.vibrate(1000); // long[] pattern = new long[]{300,500,700,900}; //pattern 震动变化的时间段 //repeat 从pattern的哪个数组下标开始震动 // vibrator.vibr

实现ios常见菜单效果的思路

目前见过的实现边侧菜单的效果,比较流行的有以下三种:(效果图) 1.菜单栏覆盖在部分主视图上 附上实现该效果的一个不错的源码地址: http://code4app.com/ios/RNFrostedSidebar/524399706803fa3c33000001 (1)最开始要实现这个效果,我想最简单的方式就是:添加UIView,加上一个self.view大小的子视图,菜单列表以外的区域设为透明灰色.后来发现,如果当前的控制器有显示导航栏或者工具栏,这个子视图就无法遮盖住导航栏或者工具栏上面的按

jQuery实现抖动效果

//抖动效果 //intShakes:抖动次数:intDistance:抖动左右距离:intDuration:持续时间 jQuery.fn.shake = function (intShakes, intDistance, intDuration) { this.each(function () { var jqNode = $(this); jqNode.css({ position: 'relative' }); for (var x = 1; x <= intShakes; x++) {