【第22期】观点:IT 行业加班,到底有没有价值?

UIControl的两个子类 -- UISegmentedControl UISlider

原创 2015年11月17日 19:18:57

UISegmentedControl – 分段控件

分段控件的初始化可用数组 但数组中的对象必须是字符串 或者 图片

如果选用图片初始化 必须使用镂空图

// 用字符串组成的数组初始化
    NSArray *stringArray = @[@"第一段",@"第二段",@"第三段"];

// 分段控件的初始化
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:stringArray];

// 分段控件添加至视图上
    segmentedControl.frame = CGRectMake(20, 100, 300, 50);
    segmentedControl.backgroundColor = [UIColor greenColor];
    [self.view addSubview:segmentedControl];
    [segmentedControl release];

// 设置默认选中(从0开始)
    segmentedControl.selectedSegmentIndex = 1;

// 修改选中的颜色
    segmentedControl.tintColor = [UIColor brownColor];

// 修改中间段的宽度
    [segmentedControl setWidth:200 forSegmentAtIndex:1];
// 用图片组成的数组初始化

// 创建图片数组
    UIImage *image1 = [UIImage imageNamed:@"01-refresh"];
    UIImage *image2 = [UIImage imageNamed:@"02-redo"];
    UIImage *image3 = [UIImage imageNamed:@"03-loopback"];
    NSArray *imageArray = @[image1, image2, image3];

// 创建分段控件 并添加到视图上   
    UISegmentedControl *segmentedControlImage = [[UISegmentedControl alloc] initWithItems:imageArray];
    segmentedControlImage.backgroundColor = [UIColor orangeColor];
    segmentedControlImage.frame = CGRectMake(40, 300, 300, 50);
    segmentedControlImage.tintColor = [UIColor purpleColor];
    segmentedControlImage.selectedSegmentIndex = 0;
    [self.view addSubview:segmentedControlImage];
    [segmentedControlImage release];

// 添加一个点击事件
// 选取UIControlEventValueChanged 实际上是检测了索引的变化
    [segmentedControlImage addTarget:self action:@selector(segmentedAction:) forControlEvents:UIControlEventValueChanged];

// 实现一个需求: 点击分段控件的不同按钮 视图颜色随之改变

// 将三控制器设置为根视图控制器的子控制器(应将三控制器类设置根视图控制器的属性 方便取用)
    self.grayVC = [[GrayViewController alloc] init];
    [self addChildViewController:self.grayVC];
    [self.view addSubview:self.grayVC.view];
    [_grayVC release];

    self.blueVC = [[BlueViewController alloc] init];
    [self addChildViewController:self.blueVC];
    [self.view addSubview:self.blueVC.view];
    [_blueVC release];

    self.greenVC = [[GreenViewController alloc] init];
    [self addChildViewController:self.greenVC];
    [self.view addSubview:self.greenVC.view];
    [_greenVC release];

    // 最前面的应该是segment
    // 然后是默认选中按钮对应的视图
    [self.view bringSubviewToFront:self.grayVC.view];
    [self.view bringSubviewToFront:segmentedControlImage];


}

实现分段控件添加的方法:

- (void)segmentedAction:(UISegmentedControl *)segmentedControl
{
    // 需求 判断出 点击了哪个分段按钮
    // 每个分段按钮 控制一个界面 每个界面是一个控制器来控制 并且可以切换界面

       NSLog(@"点了第%ld个",segmentedControl.selectedSegmentIndex);
    // 通过索引切换不同的界面
    switch (segmentedControl.selectedSegmentIndex) {
        case 0:
            [self.view insertSubview:self.grayVC.view belowSubview:segmentedControl];
            break;
        case 1:
            [self.view insertSubview:self.greenVC.view belowSubview:segmentedControl];
            break;
        case 2:
            [self.view insertSubview:self.blueVC.view belowSubview:segmentedControl];
            break;
        default:
            break;
    }

UISlider – 滑块控件

初始化 和 属性

// 初始化
    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;
    [self.view addSubview:slider];
    [slider release];

给滑块控件添加方法

// 添加滑动事件
    [slider addTarget:self action:@selector(sliderClick:) forControlEvents:UIControlEventValueChanged];

UIImageView的属性

在给滑块控件实现方法前 先了解一下UIImageView的一些属性

// 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)sliderClick:(UISlider *)slider
{
    UIImageView *imageView = (UIImageView *)[self.view viewWithTag:1000];
    if (slider.value == slider.maximumValue) {
        // 为了美观 停止的时候 添加一张占位图
        [imageView stopAnimating];
        imageView.image = [UIImage imageNamed:@"005.jpg"];
    }else{
        imageView.animationDuration = slider.value;
        [imageView startAnimating];
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

UIProgressView进度条,UISlider滑动条,UISegmentedControl分隔栏的简单使用

UISegmentedControl是开发中经常会使用到,所以刚刚在学习的时候也重点的看了下该控件 进度条和滑动条一半很少会使用到(下载的时候会经常使用到该属性),android的进度条和滑动的设置比ios复杂很多   先上图 <img src="http://dl2.iteye.com/upload/attachment/0113/9188/7596fa82-760b-3ca8-9ca

iOS UI 开发

IOS    UI开发    1 一、    IOS平台    3 (一)    IOS系统框架    3 (二)    X-CODE的使用    4 (三)    模拟器的使用    5 (四)  ...

欢迎关注CSDN程序人生公众号

关注程序员生活,汇聚开发轶事。

Collection集合根接口、两个子接口list和set

   第一:由数组的缺点来引入集合:    1.数组只能保存相同的数据类型的数据    2.数组的长度是不可变的   第二:集合的引入   1.长度可变的数组。集合的容量随着元素的个数自适应变化  2.可以保存任意类型的元素。   第三:Collection根接口和List子接口 1.Collection是

OC 笔记

OC方面的基础笔记:   1.类的基本用法 #import  // 大体上就是include, 用于包含头文件, 但是即使头文件中, 没有ifndef defined endif, 仍然能够踢...

15 继承(二)(每个子类扩展的属性单独保存在一张表中)

人类(Person) , 男人(Men)继承"人"类, 女人(Women)继承"人"类, UML如下: <img alt="" height="299" src="/upload/picture/pic/32347/ada7f220-f054-30a9-9dfa-4bb3af49aa02.jpg"
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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