使用UIImageView播放动画
来源:互联网 发布:狮虎兽可以繁殖吗 知乎 编辑:程序博客网 时间:2024/04/30 13:17
问题:如何使用UIImageView播放动画,并停留在之后一张图片
思路:
除了把动画所需要的几张图片赋值给 animationImages 之外,多加一步 ,把最后一张图片赋值给UIImageView的 Image就好了。
让后就开始Animations。
代码如下:
UIImageView *fishAni=[[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//将指定的图片载入 animationImages
fishAni.animationImages=[NSArray arrayWithObjects:
[UIImage imageNamed:@"13.png"],
[UIImage imageNamed:@"12.png"],
[UIImage imageNamed:@"11.png"],
[UIImage imageNamed:@"10.png"],nil ];
[fishAni setImage:[UIImage imageNamed:@"10.png"]];
//设定动画的播放时间
fishAni.animationDuration=1.0;
//设定重复播放次数
fishAni.animationRepeatCount=1;
//开始播放动画
[fishAni startAnimating];
[self.view addSubview:fishAni];
fishAni.animationImages=[NSArray arrayWithObjects:
[UIImage imageNamed:@"13.png"],
[UIImage imageNamed:@"12.png"],
[UIImage imageNamed:@"11.png"],
[UIImage imageNamed:@"10.png"],nil ];
[fishAni setImage:[UIImage imageNamed:@"10.png"]];
//设定动画的播放时间
fishAni.animationDuration=1.0;
//设定重复播放次数
fishAni.animationRepeatCount=1;
//开始播放动画
[fishAni startAnimating];
[self.view addSubview:fishAni];
当播放器播放完后,要执行的事件,可以添加如下代码:
NSInteger AnimationNtimer =1;
NSTimer *animationTimer = [NSTimer scheduledTimerWithTimeInterval: AnimationNtimer target:self selector:@selector(ArrowAnimationPlay:) userInfo:nil repeats: NO];
播放结束后的事件。
-(void)ArrowAnimationPlay:(NSTimer *) timer{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"wtq" message:@"I have a message" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:nil];
[alert show];
[alert release];
}
颜色变换:
做一个UIImage的category,直接上代码:
- - (UIImage *) imageWithBackgroundColor:(UIColor *)bgColor
- shadeAlpha1:(CGFloat)alpha1
- shadeAlpha2:(CGFloat)alpha2
- shadeAlpha3:(CGFloat)alpha3
- shadowColor:(UIColor *)shadowColor
- shadowOffset:(CGSize)shadowOffset
- shadowBlur:(CGFloat)shadowBlur {
- UIImage *image = self;
- CGColorRef cgColor = [bgColor CGColor];
- CGColorRef cgShadowColor = [shadowColor CGColor];
- CGFloat components[16] = {1,1,1,alpha1,1,1,1,alpha1,1,1,1,alpha2,1,1,1,alpha3};
- CGFloat locations[4] = {0,0.5,0.6,1};
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
- CGGradientRef colorGradient = CGGradientCreateWithColorComponents(colorSpace, components, locations, (size_t)4);
- CGRect contextRect;
- contextRect.origin.x = 0.0f;
- contextRect.origin.y = 0.0f;
- contextRect.size = [image size];
- //contextRect.size = CGSizeMake([image size].width+5,[image size].height+5);
- // Retrieve source image and begin image context
- UIImage *itemImage = image;
- CGSize itemImageSize = [itemImage size];
- CGPoint itemImagePosition;
- itemImagePosition.x = ceilf((contextRect.size.width - itemImageSize.width) / 2);
- itemImagePosition.y = ceilf((contextRect.size.height - itemImageSize.height) / 2);
- UIGraphicsBeginImageContext(contextRect.size);
- CGContextRef c = UIGraphicsGetCurrentContext();
- // Setup shadow
- CGContextSetShadowWithColor(c, shadowOffset, shadowBlur, cgShadowColor);
- // Setup transparency layer and clip to mask
- CGContextBeginTransparencyLayer(c, NULL);
- CGContextScaleCTM(c, 1.0, -1.0);
- CGContextClipToMask(c, CGRectMake(itemImagePosition.x, -itemImagePosition.y, itemImageSize.width, -itemImageSize.height), [itemImage CGImage]);
- // Fill and end the transparency layer
- CGContextSetFillColorWithColor(c, cgColor);
- contextRect.size.height = -contextRect.size.height;
- CGContextFillRect(c, contextRect);
- CGContextDrawLinearGradient(c, colorGradient,CGPointZero,CGPointMake(contextRect.size.width*1.0/4.0,contextRect.size.height),0);
- CGContextEndTransparencyLayer(c);
- //CGPointMake(contextRect.size.width*3.0/4.0, 0)
- // Set selected image and end context
- UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- CGColorSpaceRelease(colorSpace);
- CGGradientRelease(colorGradient);
- return resultImage;
- }
用法如下:
- UIImage *niceImage = [[UIImage imageNamed:@"image_name"] imageWithBackgroundColor:[UIColor colorWithRed:41.0/255.0 green:147.0/255.0 blue:239.0/255.0 alpha:1.0]
- shadeAlpha1:0.6
- shadeAlpha2:0.0
- shadeAlpha3:0.4
- shadowColor:[UIColor blackColor]
- shadowOffset:CGSizeMake(0.0f, -1.0f)
- shadowBlur:3.0];
- 使用UIImageView播放动画
- UIImageView 实现播放动画
- UIImageView中播放动画
- UIImageView播放帧动画
- UIImageView 播放一组图片动画
- 使用UIImageView播放图片
- 使用UIImageView制作动画
- 使用UIImageView实现动画
- 利用UIImageView连续播放图片动画效果
- iPhone 如何使用UIImageView播放动画,并停留在之后一张图片并添加播放结束时的事件
- iOS开发>>>UIImageView连续播放图片,组成动画
- UIImageView-播放序列图(简单的动画效果实现)
- swift之汤姆猫实现(UIImageView动画播放)
- UIImageView 动画
- UIImageView动画
- UIimageView 动画
- UIImageView动画
- UIImageView 使用animationImages动画展示图片
- 为性能
- ios 学习之你画我话绘图六 矩形
- 转义字符
- Protobuf编译原理
- 图解数据结构(2)——栈
- 使用UIImageView播放动画
- ace日志多种输出方式
- 关于系统调用open,write,read,close及库函数fopen,fwrite,fread,fclose的使用
- 自动过滤添加域名中的http
- 图解数据结构(1)——大圈表示法、动态数组和单向链表
- C#创建COM供PB调用
- lua开发工具的使用和环境的配置
- Several ports (8005, 8080, 8009) required by Tomcat Server at localhost are already in use
- redis2.6高可用方案【2】