随意细解:UI -- UISegmentedControl、UISlider

UISegmentedControl

分段按钮:
每个分段按钮控制一个界面,每个界面是一个控制器来控制,并且可以切换界面。
注:如果选用图片初始化,必须选用镂空图

这里写图片描述

常用方法

  • initWithItems:
    UISegmentedControl独有的初始化⽅法,⽤来创建多个分段

  • setTitle: forSegmentAtIndex:
    为指定下标的分段设置title

  • selectedSegmentAtIndex
    被选中的segment下标
  • tintColor
    segmentedControl条的颜⾊(含每个segment的颜⾊)
  • addTarget: action: forControlEvents:
    给UISegmentedControl添加事件,controlEvent为UIControlEventValueChanged。

代码演示

UISegmentedControl *segmentControl = [[UISegmentedControl alloc]initWithItems:itemArr];
segmentControl.backgroundColor = [UIColor yellowColor];
segmentControl.frame = CGRectMake(20, 50, 300, 50);
// 设置默认选中(索引从0开始)
segmentControl.selectedSegmentIndex = 0;
// 修改选中的颜色
segmentControl.tintColor = [UIColor grayColor];
// 修改中间段的宽度
[segmentControl setWidth:200 forSegmentAtIndex:1];
[self.view addSubview:segmentControl];
[segmentControl release];

UISlider

滑块控件,通常⽤于控制视频播放进度,控制⾳量等。滑块提供了⼀系列连续的值,滑块停在不同的位置,获取到滑块上的值也不同。

这里写图片描述

常用属性

  • minimumValue

    设置滑块的最⼩值

  • maximumValue

    设置滑块的最⼤值

  • value

    设置滑块的当前值

  • minimumTrackTinkColor

    定义划过区域的颜⾊

  • addTarget: action: forControlEvents:

    给UISlider添加事件,controlEvent为UIControlEventValueChanged。

代码演示

UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(30, 100, 300, 30)];
    slider.backgroundColor = [UIColor yellowColor];
    [self.view addSubview:slider];
    // 设置轨迹颜色
    slider.minimumTrackTintColor = [UIColor greenColor];
    slider.maximumTrackTintColor = [UIColor cyanColor];
    // 设置滑动按钮颜色
    slider.thumbTintColor = [UIColor yellowColor];
    // 02-redo\01-refresh\03-loopback均为图片名
    [slider setThumbImage:[UIImage imageNamed:@"02-redo"] forState:(UIControlStateNormal)];
    [slider setThumbImage:[UIImage imageNamed:@"01-refresh"] forState:(UIControlStateHighlighted)];
    [slider setThumbImage:[UIImage imageNamed:@"03-loopback"] forState:(UIControlStateSelected)];
    slider.minimumValueImage = [UIImage imageNamed:@"01-refresh"];
    slider.maximumValueImage = [UIImage imageNamed:@"03-loopback"];
    // 设置滑块的初值、最大值、最小值
    // 如果想设置初始位置,需要先把最大最小值设置上,再给初值,才会发生变化
    slider.minimumValue = 0;
    slider.maximumValue = 10;
    slider.value = 1;
    // 添加滑动事件
    [slider addTarget:self action:@selector(sliderAction:) forControlEvents:(UIControlEventValueChanged)];

    [slider release];

UIImageView

动画

这里写图片描述

常用属性

  • image

    设置图片

  • animationImages

    设置⼀组动态图⽚

  • animationDuration

    设置播放⼀次⼀组动态图⽚的时间

  • animationRepeatCount

    设置重复次数

  • startAnimating

    开始动画

  • stopAnimating

    结束动画

代码演示

用UIImageView创建一个动画(跑图),slider控制 动画播放的事件间隔,并且 slider滑动到最大值,停止动画。

在viewDidLoad方法中:

// imageView动画(跑图)
    self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake(30, 200, 300, 200)];
    self.imageView.backgroundColor = [UIColor greenColor];
    [self.view addSubview:self.imageView];
    [self.imageView release];


    // 构建一个图片数组
    NSMutableArray *imageArr = [NSMutableArray array];
    for (int i = 1; i < 10; i++) {
        // 把图片名字拼接出来
        NSString *name = [NSString stringWithFormat:@"%d",i];
        UIImage *image = [UIImage imageNamed:name];
        [imageArr addObject:image];
    }

    // 设置imageView播放动画的数组
    self.imageView.animationImages = imageArr;
    // 设置时间间隔 (播放完整一次10秒)
    self.imageView.animationDuration = 10;
    // 设置重复次数( 0 代表无限次)
    self.imageView.animationRepeatCount = 0;
    // 让动画开始
    [self.imageView startAnimating];

添加点击事件:

- (void)sliderAction:(UISlider *)slider
{
    NSLog(@"%.0f", slider.value);

    if (slider.value == slider.maximumValue) {
        [self.imageView stopAnimating];
        // 为了美观,停止的时候添加一张占位图
        self.imageView.image = [UIImage imageNamed:@"005.jpg"];
    }else{
        self.imageView.animationDuration = 10 - slider.value;
        [self.imageView startAnimating];
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值