进击的KFC:UI(六)UISegmentControl,UISlider,NSTimer,UIImageView

一.pragma mark ————- UISegmentedControl 分段按钮

———————————–继承于UIControl
1.初始化
UISegmentedControl seg = [UISegmentedControl alloc] initWithItems:(NSArray )
注意这个初始化用到的数组里的元素 必须是字符串 或者 镂空图

  (1)字符串数组初始化
  NSArray *itemArray = @[@"你好",@"KFC",@"再见"];
  //   分段按钮
  UISegmentControl *segmentControl = [[UISegmentControl alloc] initWithItems:itemArray];
  segmentControl.frame = CGRectMake(20,100,300,50);
  // 设置属性
  // 设置默认的选中第2个
  segmentControl.selectedSegmentIndex= 1;
  // 修改旋转状态的 填充 颜色
  segmentControl.tintColor = [UIColor blackColor];
  // 修改中间段的宽度 (两边按钮的宽度会自动缩短)
  [segmentControl setWidth:200 forSegmentAtIndex:1];
  // 为指定下标的分段设置标题
  [segmentControl setTitle:@"M" forSegmentAtIndex:1];

(2)// 用图片来初始化
    // 镂空图:能够把背景的颜色,在轨迹上透出来
    // 选中状态下,镂空图能显示不选中状态下的颜色
    // 不选中状态下,镂空图能显示选中状态下的颜色
     NSArray *imageArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"friend"],[UIImage imageNamed:@"02-redo"],[UIImage imageNamed:@"03-loopback"],nil];
     // 其他属性的设置和上面一致
    // 添加一个点击时间 (核心方法)
    // 分割控件 添加方法 选择 ValueChanged(监测角标,索引高度变化)
    [segmentControl setTarget:self action:@selector:(segmentControlAction:) forControlEvents:(UIControlEventValueChanged)];

二.pragma mark —- UISlider 滑块控件

———————————–继承UIControl

// 先设置成属性
@property(retain,retain)UISlider *slider;
// 初始化
self.slider = [[UISlider alloc]initWithFrame:CGRectMake(20,100,300,50)];
// 设置属性
// 设置背景颜色
self.slider.backgroundColor = [UIColor greenColor];
// 设置轨迹颜色
self.slider.minimumTrackTintColor = [UIColor redColor];  // 左侧颜色
self.slider.minimumTrackTintColor = [UIColor greenColor]; // 右侧颜色
// 设置滑块的填充色
self.slider.thumbTintColor = [UIColor orangeColor] 

// 设置图片
// 设置滑块在不同状态下的图片
[self.slider setThumbImage:[UIImage imageNamed:@"jinru"] forState:(UIControlStateNormal)];
[self.slider setThumbImage:[UIImage imageNamed:@"friend"]forState:(UIControlStateHighlighted)];
[self.slider setThumbImage:[UIImage imageNamed:@"02-redo"forState:(UIControlStateSelected)];

// 添加最小值最大值两端的图片
self.slider.minimumValueImage = [UIImage imageNamed:@"02-redo"];
self.slider.maximumValueImage = [UIImage imageNamed:@"02-redo"];

// 设置初值,最大值,最小值
self.slider.minimumValue = 0;
self.slider.maximumValue = 10;
self.slider.value = 1;
self.slider.continuous = NO; // 滑动时不连续显示数值,只在显示最后停留位置处的值
// 添加响应事件
[self.slider addTarget:self action:@selector(sliderAction:)forControlEvents:(UIControlEventValueChanged)];
// 添加显示
[self.view addSubView:self.slider];

三.pragma mark ———-UIImageView

// ImageView动画 (跑图)
 self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 200, 340, 400)];
    self.imageView.backgroundColor = [UIColor redColor];
    [self.view addSubview:self.imageView];

    // 构建一个图片数组 (找一组图片拉进工程,注意把图片名字改成1 2 3...10)
    self.onePunch = [NSMutableArray array];
    for (int i = 1; i < 11; i++) {
        [self.onePunch addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]]];
    }
    // 设置imageView播放动画的数组
    self.imageView.animationImages = self.onePunch;
    // 设置重复的次数 (0代表无限次)
    self.imageView.animationRepeatCount = 0;
    // 设置完整播放一次的时间(秒)(10秒放10张图,所以改变animationDuration的值,可以改变播放的速度);
    self.imageView.animationDuration = 10;
    // 开始动画
    [self.imageView startAnimation];

四.pragma mark —- NSTimer计时器

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    // 创建一个button
    self.button = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 200, 100)];
    self.button.backgroundColor = [UIColor blackColor];
    [self.button setTitle:@"发送验证码" forState:(UIControlStateNormal)];
    [self.button addTarget:self action:@selector(click:) forControlEvents:(UIControlEventTouchUpInside)];
    [self.view addSubview:self.button];

    // 给一个时间的初值
    self.number = 5;


}

- (void)click:(UIButton *)button
{
    // 倒计时:核心 每隔一秒 时间递减

    // 计时器类(可以实现每隔多少时间 调用一个方法),用类方法来初始化
    // (NSTimeInterval) 时间间隔
    // 每隔1秒钟调用timer:这个方法
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timer:) userInfo:@"button倒计时" repeats:YES];

    // 计时器开始
    [timer fire];

    // 关闭按钮交互
    self.button.userInteractionEnabled = NO;

}

- (void)timer:(NSTimer *)timer
{
    // 改button的标题进行倒计时
        NSString *Buttontitle = [NSString stringWithFormat:@"%ld秒",self.number--];
        [self.button setTitle:Buttontitle forState:(UIControlStateNormal)];
   // 判断倒计时 是否结束 标题是否为0
    {
        if ([[self.button titleForState:(UIControlStateNormal)] isEqualToString:@"0秒"]) {
            // 停止计时器
            [timer invalidate];
            [self.button setTitle:@"重新发送验证码" forState:(UIControlStateNormal)];
            // 把交互再打开 可以重新点击
            self.button.userInteractionEnabled = YES;
            // 重置时间,不然会从继续从-1开始计时
            self.number = 5;
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值