您的位置:首页 > 移动开发 > IOS开发

iOS 窗口抖动效果代码及解释

2015-09-16 21:15 483 查看
这个方法很简单,直接传入需要抖动的视图就可以实现传入的视图抖动了

-(void)shake:(UIView *)shakeView
{
//  @"position"  这个 key  不能为空,position,是一个属性
CAKeyframeAnimation *animationKey = [CAKeyframeAnimation animationWithKeyPath:@"position"];
// 设置 animationKey 持续时间
//    [animationKey setDuration:0.5f];// set语法
animationKey.duration = 0.5f;// .语法
// animationKey 的 value 数组  NSValue 型
NSArray *valueArray = [[NSArray alloc]initWithObjects:[NSValue valueWithCGPoint:CGPointMake(self.view.center.x, self.view.center.y)],[NSValue valueWithCGPoint:CGPointMake(self.view.center.x-5, self.view.center.y)],[NSValue valueWithCGPoint:CGPointMake(self.view.center.x+5, self.view.center.y)],[NSValue valueWithCGPoint:CGPointMake(self.view.center.x, self.view.center.y)], [NSValue valueWithCGPoint:CGPointMake(self.view.center.x-5, self.view.center.y)],[NSValue valueWithCGPoint:CGPointMake(self.view.center.x+5, self.view.center.y)],[NSValue valueWithCGPoint:CGPointMake(self.view.center.x, self.view.center.y)],[NSValue valueWithCGPoint:CGPointMake(self.view.center.x-5, self.view.center.y)],[NSValue valueWithCGPoint:CGPointMake(self.view.center.x+5, self.view.center.y)],[NSValue valueWithCGPoint:CGPointMake(self.view.center.x, self.view.center.y)],nil];
[animationKey setValues:valueArray];

//  animationKey 的时间数组   NSNumber 类型
NSArray *timeArray = [ [NSArray alloc]initWithObjects:[NSNumber numberWithFloat:0.1f],[NSNumber numberWithFloat:0.2f],[NSNumber numberWithFloat:0.3f],[NSNumber numberWithFloat:0.4f],[NSNumber numberWithFloat:0.5f],[NSNumber numberWithFloat:0.6f], [NSNumber numberWithFloat:0.7f],[NSNumber numberWithFloat:0.8f],[NSNumber numberWithFloat:0.9f],[NSNumber numberWithFloat:1.0f],nil];
[animationKey setKeyTimes:timeArray];
//  把  animationKey  添加在 bgView 上
[shakeView.layer addAnimation:animationKey forKey:nil];
}


也可以根据自己的需要把上面的数值加以修改,得到不一样的效果,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: