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

原创 2015年11月21日 10:59:16

今天我们学习的是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.设置一组图片动画

// imageView
    UIImageView *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;

    }

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

一般IOS项目中的滑动标签栏的实现

iOS中左右滑动切换,滑动标签页导航的设计思路 iOS开发中经常(几乎每个APP都含有这样的页面吧,几乎!UI设计师也都是这样抄来抄去…..) 估计很多人都会说,直接用第三方就可以了,很多...

UISlider的应用-----通过简单的图片设置改变滑动效果

原装Slider: 之后效果: 1.滑动条准备了

iOS滑动条UISlider的使用方法

介绍滑动条UISlider的使用方法及demo

Iphone开发(五)用滑块slider来调节控件透明度

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/deta...

【IOS 开发学习总结-OC-46】★ios开发之UI控件——UIProgressView 与 UISlider(另:可拉伸图片)

UIProgressView——进度条广义的进度条,包括UIProgressView与UIActivityIndicatorView。 UIProgressView——用于显示某耗时操作完成的百分...

给UIImageView设置一组图片动画,每张图片停留时间不一祥

import @interface ViewController ()@property (nonatomic, copy) NSMutableArray *imageArray;//存放CGImag...

iOS UISlider简单使用

//我把View封装到了RootView,在viewController里初始化 RootView *rootV = [[RootView alloc] initWithFrame:[[UIS...

我的iOS学习历程 - UIView动画与CAAnimation动画详解

CAAnimation 是一个抽象类 旗下三个子类 1.CAAnimationGroup 设置组动画 2.CAPropertyAnimation 属性动画 抽象类 旗下两个子 ① ...

iOS开发笔记--UISlider的相关属性设置

UISlider的使用 一、创建滑块 滑块是一个标准的UIControl。我们可以通过代码创建,和开关(UISwitch)的宽与高都会被忽略一样滑块的高也会被忽略(但是宽度不会): UISli...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)