【iOS开发】 制作gif动态图
来源:互联网 发布:济南企业软件 编辑:程序博客网 时间:2024/04/28 06:43
//本部分代码在Xcode中可以运行
代码
.h文件
//创建属性 图片和颜色
@property (nonatomic, retain) UIImageView *image;
@property (nonatomic, retain) UIColor *color;
.m文件
//释放内存
- (void)dealloc
{
[_image release];
[_color release];
_image = nil;
_color = nil;
[super dealloc];
}
//在viewDidLoad中调用
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self.view setBackgroundColor:[UIColor cyanColor]];
[self createView];
}
//创建所需要的类
- (void)createView{
//创建滑动轮
UISlider *lider = [[UISlider alloc]initWithFrame:CGRectMake(20, 40, 280, 10)];
[lider setBackgroundColor:[UIColor yellowColor]];//创建背景颜色
lider.minimumTrackTintColor = [UIColor redColor];//拉动条左侧颜色设置
[lider addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];//点击事件
lider.minimumValue = 5.0;//控制最小播放速度
lider.maximumValue = 10.0;//控制最大播放速度
[self.view addSubview:lider];
[lider release];
//创建背景图和闪动图
NSMutableArray *images = [NSMutableArray array];
for (int i = 1; i < 9; i++) {//图片总个数+1 次循环
//图片最好改成有规律型的,利于在制作过程中,使代码能够简洁易懂
NSString *name = [NSString stringWithFormat:@"%d.png",i];
UIImage *aImige = [UIImage imageNamed:name];
[images addObject:aImige];//把图片加到数组中,循环
}
self.image = [[UIImageView alloc]initWithFrame:CGRectMake(20, 70, 280, 340)];//设置一个具体位置
[_image setImage:[UIImage imageNamed:@"背景图.png"]];
[_image setBackgroundColor:[UIColor greenColor]];
_image.layer.borderColor = [[UIColor yellowColor] CGColor];//设置边界颜色
_image.layer.borderWidth = 5;//设置边界宽度
[_image startAnimating];//播放数组中图片循环所制作的动画
[_image setAnimationImages:images];
_image.userInteractionEnabled = YES;//图片可点击 方便于在此章代码上再添加一些功能
[self.view addSubview:_image];
[_image release];
//创建按钮 (button按钮 不能release)
UIButton *startButton = [[UIButton alloc]initWithFrame:CGRectMake(20, 440, 80, 30)];
[startButton setBackgroundColor:[UIColor orangeColor]];//设置按钮背景色
[startButton setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];//设置字体颜色
[startButton setTitle:@"动画开始" forState:UIControlStateNormal];
[startButton addTarget:self action:@selector(actionStart:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:startButton];
UIButton *endButton = [[UIButton alloc]initWithFrame:CGRectMake(120, 440, 80, 30)];
[endButton setBackgroundColor:[UIColor blueColor]];
[endButton setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
[endButton setTitle:@"动画结束" forState:UIControlStateNormal];
[endButton addTarget:self action:@selector(actionEnd:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:endButton];
UIButton *restoreButton = [[UIButton alloc]initWithFrame:CGRectMake(220, 440, 80, 30)];
[restoreButton setBackgroundColor:[UIColor orangeColor]];
[restoreButton setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
[restoreButton setTitle:@"还原背景" forState:UIControlStateNormal];
[restoreButton addTarget:self action:@selector(actionReturn:)forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:restoreButton];
}
//创建点击事件
#pragma mark lider点击事件
- (void)action:(id)sender{
NSLog(@"%s", __func__);//习惯输出,方便测试程序
UISlider *sil = (UISlider *)sender;//强转
[_image setAnimationDuration:10 - sil.value];//获得播放速度值
[_image startAnimating];//开始播放
}
#pragma mark 开始方法
- (void)actionStart:(id)sender{
NSLog(@"%s", __func__);
[_image startAnimating];
}
#pragma mark 结束方法
- (void)actionEnd:(id)sender{
NSLog(@"%s", __func__);
[_image stopAnimating];//结束播放
}
#pragma mark 还原背景色方法
- (void)actionReturn:(id)sender{
NSLog(@"%s", __func__);
[_image stopAnimating];
[_image setImage:[UIImage imageNamed:@"背景图.png"]];
}
- 【iOS开发】 制作gif动态图
- GIF动态图制作
- GIF动态图制作
- IOS制作GIF图
- MATLAB 制作gif动态图
- 在线制作动态图(gif)
- 屏幕录像制作gif动态图
- 【知识分享】如何制作Gif动态图
- PS轻松制作GIF动态图
- iOS制作演示gif
- iOS webView展示gif图(登录时背景图动态gif)
- iOS-OC-启动图加载动态Gif
- 如何制作GIF动态图片
- ubuntu 制作gif 动态图片
- 如何制作动态图片gif
- 【微信小编】动态地图gif制作
- iOS开发问题之:如何将相册中的动态GIF图转化成NSData类型
- iOS开发问题之:如何将相册中的动态GIF图转化成NSData类型?
- 装饰者模式
- IoMarkIrpPending函数
- Android sdk更新不了的解决方式,修改dl-ssl.google地址
- java4android十二集到十七集记录
- 层次遍历二叉树
- 【iOS开发】 制作gif动态图
- Handler和HandlerThread
- UIBezierPath贝塞尔曲线
- 人人笔试题 截取html字符串
- spring2.5企业级开发
- obj-c编程04:类的继承
- 【Unity 3D】学习笔记二十二:unity游戏脚本(二)
- 计算器
- 统计二叉树叶子节点的个数