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];
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS编程--------UIControl的作用及其子类UISegmentedControl的使用 / UISlider的使用 / UIImageView的使用

// // AppDelegate.h // UI06_UIControl,controlSubClass // // Created by l on 15/9/8. // Copyright...

iOS个人整理10-UIControl与子类:UISlider,UISegmentControl

一、UISlider UISlider是iOS中的滑块控件 通常用于控制视频播放进度,控制音量 它继承于UIControl,滑块位于滑条不同位置时提供不同的Value值 //滑竿初始化 ...

UI - UISegmentedControl、UISlider、UIImageView、UISwitch

// UIControl的子类(8个): // UITextField // UIPageControl // UISlider // UIButton // UI...

iOS开发——基本控件(UIButton,UILabel,UITextField,UISwitch,UISlider,UISegmentedControl)

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; button.frame = CGRectMake(240, ...

UI基础之-UIImage,UIImageView, UISegmentedControl,UISlider

一  UIImageView和 UIImage 1.  UIImage 继承自 NSObject,是用来保存图片资源的 UIImageView继承自 UIView, 用来显示图片的控件,相当于一个相框...

【学习ios之路:UI系列】ios中常见的几种控件.(UISlider,UISwitch,UIStepper,UISegmentedControl)

一.滑块控件(UISlider)  效果如下 注:系统原来效果如下 具体功能运用: ①创建滑块控件(UISlider),设置控件大小,并添加到window视图上,后释放 UISlid...

随意细解:UI -- UISegmentedControl、UISlider

UISegmentedControl、UISlider、UIImageView

UISegmentedControl(分页控制器) AND UISlider(滑块控制器)

- (void)viewDidLoad { [super viewDidLoad]; UIImageView * animatedImageView = [[UIImageV...

【iOS学习笔记】代码实现常用控件UIButton、UISlider、UISwitch、UISegmentedControl

IOS中最常用到的控件UIButton、UISlider、UISwitch、UISegmentedControl通过Xib文件拖动生成非常简单,其实用代码实现也是一样的简单,当然,用代码实现能够掌握到...

【学习ios之路:UI系列】ios中常见的几种控件.(UISlider,UISwitch,UIStepper,UISegmentedControl)

http://www.itnose.net/detail/6193804.html 一.滑块控件(UISlider)  效果如下 注:系统原来效果如下 具体功能运...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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