日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单动画

發(fā)布時間:2024/1/18 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单动画 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

#define kDegreesToRadian(x) (M_PI * (x) /?180.0)

?

#define kRadianToDegrees(radian) (radian*180.0)/(M_PI)

?

- (void)viewDidLoad

{

? ? [superviewDidLoad];

? ??self.title?=?@"測試動畫";

? ??self.view.backgroundColor?= [UIColorlightGrayColor];

?? ?

?? ?

? ??myTest1?= [[UILabelalloc]initWithFrame:CGRectMake(10,?100,?60,?40)];

? ??myTest1.backgroundColor?= [UIColorblueColor];

? ??myTest1.textAlignment?=?NSTextAlignmentCenter;

? ??myTest1.text?=?@"張明煒";

? ??myTest1.textColor?= [UIColorwhiteColor];

? ? [self.viewaddSubview:myTest1];

?? ?

? ? ??//閃爍效果。

//? ? [myTest1.layer addAnimation:[self opacityForever_Animation:0.5] forKey:nil];

? ? ??///移動的動畫。

//? ? [myTest1.layer addAnimation:[self moveX:1.0f X:[NSNumber numberWithFloat:200.0f]] forKey:nil];

? ??//縮放效果。

//? ? [myTest1.layer addAnimation:[self scale:[NSNumber numberWithFloat:1.0f] orgin:[NSNumber numberWithFloat:3.0f] durTimes:2.0f Rep:MAXFLOAT] forKey:nil];

?? ??//組合動畫。

//? ? NSArray *myArray = [NSArray arrayWithObjects:[self opacityForever_Animation:0.5],[self moveX:1.0f X:[NSNumber numberWithFloat:200.0f]],[self scale:[NSNumber numberWithFloat:1.0f] orgin:[NSNumber numberWithFloat:3.0f] durTimes:2.0f Rep:MAXFLOAT], nil];

//? ? [myTest1.layer addAnimation:[self groupAnimation:myArray durTimes:3.0f Rep:MAXFLOAT] forKey:nil];

? ??//路徑動畫。

//? ? CGMutablePathRef myPah = CGPathCreateMutable();

//? ? CGPathMoveToPoint(myPah, nil,30, 77);

//? ? CGPathAddCurveToPoint(myPah, nil, 50, 50, 60, 200, 200, 200);//這里的是控制點。

//? ? [myTest1.layer addAnimation:[self keyframeAnimation:myPah durTimes:5 Rep:MAXFLOAT] forKey:nil];

? ??//旋轉(zhuǎn)動畫。

? ? [myTest1.layeraddAnimation:[selfrotation:2degree:kRadianToDegrees(90)?direction:1repeatCount:MAXFLOAT]?forKey:nil];

?? ?

?? ?

}

?

#pragma mark ===?永久閃爍的動畫?======

-(CABasicACnimation?*)opacityForever_Animation:(float)time

{

? ??CABasicAnimation?*animation = [CABasicAnimationanimationWithKeyPath:@"opacity"];//必須寫opacity才行。

? ? animation.fromValue?= [NSNumbernumberWithFloat:1.0f];

? ? animation.toValue?= [NSNumbernumberWithFloat:0.0f];//這是透明度。

? ? animation.autoreverses?=?YES;

? ? animation.duration?= time;

? ? animation.repeatCount?=?MAXFLOAT;

? ? animation.removedOnCompletion?=?NO;

? ? animation.fillMode?=?kCAFillModeForwards;

?? ? animation.timingFunction=[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseIn];///沒有的話是均勻的動畫。

? ??return?animation;

}

?

#pragma mark =====橫向、縱向移動===========

-(CABasicAnimation?*)moveX:(float)time X:(NSNumber?*)x

{

? ??CABasicAnimation?*animation = [CABasicAnimationanimationWithKeyPath:@"transform.translation.x"];///.y的話就向下移動。

? ? animation.toValue?= x;

? ? animation.duration?= time;

? ? animation.removedOnCompletion?=?NO;//yes的話,又返回原位置了。

? ? animation.repeatCount?=?MAXFLOAT;

? ? animation.fillMode?=?kCAFillModeForwards;

? ??return?animation;

}

?

#pragma mark =====縮放-=============

-(CABasicAnimation?*)scale:(NSNumber?*)Multiple orgin:(NSNumber?*)orginMultiple durTimes:(float)time Rep:(float)repertTimes

{

? ??CABasicAnimation?*animation = [CABasicAnimationanimationWithKeyPath:@"transform.scale"];

? ? animation.fromValue?= Multiple;

? ? animation.toValue?= orginMultiple;

? ? animation.autoreverses?=?YES;

? ? animation.repeatCount?= repertTimes;

? ? animation.duration?= time;//不設(shè)置時候的話,有一個默認(rèn)的縮放時間.

? ? animation.removedOnCompletion?=?NO;

? ? animation.fillMode?=?kCAFillModeForwards;

? ??return? animation;

}

?

#pragma mark =====組合動畫-=============

-(CAAnimationGroup?*)groupAnimation:(NSArray?*)animationAry durTimes:(float)time Rep:(float)repeatTimes

{

? ??CAAnimationGroup?*animation = [CAAnimationGroupanimation];

? ? animation.animations?= animationAry;

? ? animation.duration?= time;

? ? animation.removedOnCompletion?=?NO;

? ? animation.repeatCount?= repeatTimes;

? ? animation.fillMode?=?kCAFillModeForwards;

? ??return?animation;

}

?

#pragma mark =====路徑動畫-=============

-(CAKeyframeAnimation?*)keyframeAnimation:(CGMutablePathRef)path durTimes:(float)time Rep:(float)repeatTimes

{

? ??CAKeyframeAnimation?*animation = [CAKeyframeAnimationanimationWithKeyPath:@"position"];

? ? animation.path?= path;

? ? animation.removedOnCompletion?=?NO;

? ? animation.fillMode?=?kCAFillModeForwards;

? ? animation.timingFunction?= [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseIn];

? ? animation.autoreverses?=?NO;

? ? animation.duration?= time;

? ? animation.repeatCount?= repeatTimes;

? ??return?animation;

}

?

#pragma mark ====旋轉(zhuǎn)動畫======

-(CABasicAnimation?*)rotation:(float)dur degree:(float)degree direction:(int)direction repeatCount:(int)repeatCount

{

? ??CATransform3D?rotationTransform =?CATransform3DMakeRotation(degree,?0,?0, direction);

? ??CABasicAnimation?*animation = [CABasicAnimationanimationWithKeyPath:@"transform"];

? ? animation.toValue?= [NSValue?valueWithCATransform3D:rotationTransform];

? ? animation.duration? =? dur;

? ? animation.autoreverses?=?NO;

? ? animation.cumulative?=?NO;

? ? animation.fillMode?=?kCAFillModeForwards;

? ? animation.repeatCount?= repeatCount;

? ? animation.delegate?=?self;

?

? ??return?animation;

?

}

總結(jié)

以上是生活随笔為你收集整理的简单动画的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。