欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

我的iOS学习历程 - UISlider(简单的设置一组图片动画)

发布时间:2025/3/14 编程问答 26 豆豆
生活随笔 收集整理的这篇文章主要介绍了 我的iOS学习历程 - UISlider(简单的设置一组图片动画) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

今天我们学习的是UISlider,就是平时看视频听音乐等的进度条的设置

今天设置的slider是控制播放一组图片速度的例子:

1.初始化以及设置一些属性

// 初始化UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(50, 50, 300, 30)]; // 设置背景色slider.backgroundColor = [UIColor grayColor]; // 设置最小值轨迹颜色[slider setMinimumTrackTintColor:[UIColor greenColor]]; // 设置最大值轨迹颜色[slider setMaximumTrackTintColor:[UIColor purpleColor]]; // 设置拖动按钮颜色[slider setThumbTintColor:[UIColor brownColor]]; // 设置图片[slider setMinimumValueImage:[UIImage imageNamed:@"01-refresh"]];[slider setMaximumValueImage:[UIImage imageNamed:@"03-loopback"]];[slider setThumbImage:[UIImage imageNamed:@"01-refresh"] forState:UIControlStateNormal];[slider setThumbImage:[UIImage imageNamed:@"02-redo"] forState:UIControlStateHighlighted];[slider setThumbImage:[UIImage imageNamed:@"03-loopback"] forState:UIControlStateSelected]; // 设置滑块的初值 最大值 最小值 // 如果想设置初始位置 需要先把最大 最小值设置上 // 再给初值 才会发生变化slider.minimumValue = 0;slider.maximumValue = 10;slider.value = 10;

2.添加滑动事件(重要的,需要通过添加事件来关联)

[slider addTarget:self action:@selector(sliderClick:) forControlEvents:UIControlEventValueChanged];

事件的实现(预先添加了图片,然后设置播放完一组照片的时间为slider的值来联系起来)

- (void)sliderClick:(UISlider *)slider {UIImageView *imageView = (UIImageView *)[self.view viewWithTag:1000];if (slider.value == slider.maximumValue) {// 为了美观 停止的时候 添加一张占位图[imageView stopAnimating];imageView.image = [UIImage imageNamed:@"005.jpg"];}else{// 把播放玩一组照片的时间与slider的值联系起来imageView.animationDuration = slider.value;[imageView startAnimating];} }

3.设置一组图片动画

// imageViewUIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 500)];imageView.backgroundColor = [UIColor purpleColor];imageView.tag = 1000;[self.view addSubview:imageView];[imageView release];// 构建一个图片的数组NSMutableArray *arr = [NSMutableArray array];for (int i = 1; i <= 10; i++) {// 把图片的名字拼接出来NSString *imageName = [NSString stringWithFormat:@"%d.jpg",i];// 初始化每一张图片UIImage *image = [UIImage imageNamed:imageName];// 把图片添加到数组里[arr addObject:image];}// 设置imageView的播放动画的数组imageView.animationImages = arr; // 设置时间间隔(播放完整一次10秒)imageView.animationDuration = 10; // 设置重复次数(零代表无限次)imageView.animationRepeatCount = 0; // 让动画开始[imageView startAnimating]; }

最后一个是倒计时的实例:

点击一个发送验证码的按钮进行倒计时

- (void)viewDidLoad {[super viewDidLoad];UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];button.frame = CGRectMake(100, 100, 100, 100);button.backgroundColor = [UIColor purpleColor];button.tag = 100;[button setTitle:@"发送验证码" forState:UIControlStateNormal];[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:button];// 设置倒计时初值self.number = 5;}- (void)buttonClick:(UIButton *)button {// 倒计时核心 每隔 一秒钟 时间递减// 计时器(每隔多少时间 调用一个方法)// (NSTimeInterval) 代表时间间隔NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerAction:) userInfo:@"button倒计时" repeats:YES];// 计时器开始[timer fire];button.userInteractionEnabled = NO;}- (void)timerAction:(NSTimer *)timer {// 改button的标题UIButton *button = (UIButton *)[self.view viewWithTag:100];NSString *buttonTitle = [NSString stringWithFormat:@"%ld",self.number--];[button setTitle:buttonTitle forState:UIControlStateNormal]; // 判断倒计时是否结束(标题是否为0)if ([[button titleForState:UIControlStateNormal] isEqualToString:@"0"]) {// 停止计时器[timer invalidate];// 更改标题[button setTitle:@"发送验证码" forState:UIControlStateNormal];// 打开交互button.userInteractionEnabled = YES;// 重置时间self.number = 5;}}

转载于:https://www.cnblogs.com/888yf/p/4992717.html

总结

以上是生活随笔为你收集整理的我的iOS学习历程 - UISlider(简单的设置一组图片动画)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。