UIView--震动效果

//震动效果
- (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);
}

时间: 2024-10-12 20:58:28

UIView--震动效果的相关文章

Unity3D游戏开发之屏幕震动效果的实现

各位朋友,大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是http://qinyuanpei.com.今天我们来说说在Unity3D中如何实现屏幕震动效果.屏幕震动效果在某些游戏场景中,对于提升游戏的真实感有较大的帮助.比如在<水果忍者>这个游戏中,当玩家碰到炸弹的时候屏幕会出现强烈的震动效果,同时手机自身发出震动,这样就大大地增强了玩家在碰到炸弹这一瞬间的游戏体验. 再比如<Swordigo>这个游戏是博主一直比较喜欢的一款手机游戏,在这个游戏中玩家将扮演一个少年剑客,跨

Android摇一摇震动效果Demo

前言 在微信刚流行的时候,在摇一摇还能用来那啥的时候,我也曾深更半夜的拿着手机晃一晃.当时想的最多的就是,我靠,为神马摇一下需要用这么大的力度,当时我想可能腾讯觉得那是个人性的设计,后来才发觉尼马重力加速度设得太高了吧.扯多了,最近项目里需要解决一个震动的问题,因此在学习震动实现的过程中,写了个demo实现了摇一摇震动的效果,这里记录一下. 原理 摇一摇功能的基本原理就是:利用手机的加速度传感器,当加速度到达某个值时,触发某个事件,例如手机震动.UI改变等.这里要实现该功能,首先需要了解一下An

QT窗口渐现效果,窗口震动效果,鼠标移动窗口

//窗口渐现效果void MainWindow::closeWindowAnimation() //关闭窗口效果 { QPropertyAnimation *animation = new QPropertyAnimation(this,"windowOpacity"); animation->setDuration(500); animation->setStartValue(1); animation->setEndValue(0); animation->

jQuery实现的Div窗口震动效果实例

本文实例讲述了jQuery实现的Div窗口震动效果.分享给大家供大家参考.具体如下: 这是一款jQuery窗口震动效果代码,在Div边框内点击一下鼠标,它就开始震动了,适用浏览器:IE8.360.FireFox.Chrome.Opera.傲游.搜狗.世界之窗等. 运行效果截图如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml

Cocos2d-x移植android加入震动效果

cpp部分通过jni调用java静态函数 头文件: #include <jni.h> #include "cocos2d.h" #include "platform/android/jni/JniHelper.h" 在cpp类中定义方法去调用Cocos2dxSound.java中vibrate方法: static void vibrateJNI(long longtime) { JniMethodInfo methodInfo; if(!JniHelpe

UIView动画效果

做出UI界面,实现程序功能,是重中之重,但是通过动画提升使用体验,一般人应该不会拒绝吧. 那么问题又来了,怎么做? 一: 稳扎稳打: 一步一步来吧,毕竟,心急吃不了热豆腐. 1.开启一个动画 2,设置该动画的各种属性:动画时长.延时执行.自动返回.动画重复次数.转场动画... 3,设置动画的UI的结束时的状态是什么,UI的最终位置等. 4,提交动画. 大功告成.具体细节如下: //===---开始动画 ---=== [UIView beginAnimations:nil context:nil]

自定义UIView动画效果

最普通动画: 1 //开始动画 2 [UIView beginAnimations:nil context:nil]; 3 //设定动画持续时间 4 [UIView setAnimationDuration:2]; 5 //动画的内容 6 frame.origin.x += 150; 7 [img setFrame:frame]; 8 //动画结束 9 [UIView commitAnimations]; 连续动画:一个接一个地显示一系列的图像 1 NSArray *myImages = [NS

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 UIView动画效果 学习笔记

CGRect frame = _confirmV.frame; [UIView beginAnimations:nil context:nil];//动画定义开始 [UIView setAnimationDuration:0.5];//动画的时长 [UIView setAnimationDelay:0]; [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(removeConfirmV

Android 震动效果 简单用例

1.震动是系统的服务,首先需添加震动权限 <uses-permission android:name="android.permission.VIBRATE" /> 2.实现震动方法代码 public static void sendVibrater(Context mContext) { // 间隔震动 Vibrator mVibrator = (Vibrator) mContext .getSystemService(mContext.VIBRATOR_SERVICE)