UI基础-UIControl及其子类

原创 2015年11月17日 21:13:58

UISegmentedControl的使用

UISegmentedControl是iOS中的分段控件。 每个segment都能被点击,相当于集成了若干个button。 通常我们会点击不同的segment来切换不同的view。

常用方法和属性

创建方法1:

// 初始化的数组中 必须是 字符串 
NSArray *itemArray = @[@"第一段", @"第二段", @"第三段"];
// 分段按钮
//initWithItems:UISegmentedControl独有的初始化方法,用来创建多个分段 
UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:itemArray];
segmentControl.frame = CGRectMake(20, 100, 300, 50);
segmentControl.backgroundColor = [UIColor orangeColor];
// 设置默认选中(索引从0开始)
segmentControl.selectedSegmentIndex = 1;
// 修改选中的颜色
segmentControl.tintColor = [UIColor grayColor];
// 修改中间段宽度
[segmentControl setWidth:200 forSegmentAtIndex:1];
[self.view addSubview:segmentControl];
[segmentControl release];

创建方法2:

// 如果选用 图片初始化 必须选用镂空图
UIImage *image1 = [UIImage imageNamed:@"01-refresh"];
UIImage *image2 = [UIImage imageNamed:@"02-redo"];
UIImage *image3 = [UIImage imageNamed:@"03-loopback"];
NSMutableArray *arr = [NSMutableArray arrayWithObjects:image1, image2, image3, nil];

segment.frame = CGRectMake(0, 20, 375, 50);
segment.tintColor = [UIColor orangeColor];
segment.selectedSegmentIndex = 1;
segment.backgroundColor = [UIColor cyanColor];

// 添加点击事件
// 选取ValueChanged 实际上是监测 索引的变化
[segment addTarget:self action:@selector(segmtAction:) forControlEvents:(UIControlEventValueChanged)];
[self.view addSubview:segment];
[segment release];

这里写图片描述

例题: 判断出 点击了哪个分段按钮, 每个分段按钮 控制一个界面 每个界面由一个控制器来控制 并且可以切换界面。

1.有几个segment就创建几个控制器

self.firstVC = [[FirstViewController alloc] init];
self.secondVC = [[SecondViewController alloc] init];
self.thirdVC = [[ThirdViewController alloc] init];

2.添加子控制器 并且显示视图

[self addChildViewController:self.firstVC];
[self.view addSubview:self.firstVC.view];
[self addChildViewController:self.secondVC];
[self.view addSubview:self.secondVC.view];
[self addChildViewController:self.thirdVC];
[self.view addSubview:self.thirdVC.view];

3.释放

[self.firstVC release];
[self.secondVC release];
[self.thirdVC release];

4.最前面的应该是segment,然后默认选中第一界面视图 firstVC.view

[self.view bringSubviewToFront:self.firstVC.view];
[self.view bringSubviewToFront:segment];

5.实现segment的点击事件

- (void)segmtAction:(UISegmentedControl *)segment
{
switch (segment.selectedSegmentIndex) {
    case 0:
        [self.view bringSubviewToFront:self.firstVC.view];
        break;   

    case 1:
        [self.view bringSubviewToFront:self.secondVC.view];
        break;


    case 2:
        [self.view bringSubviewToFront:self.thirdVC.view];
        break;


    default:
        break;
}
[self.view bringSubviewToFront:segment];
}

UISlider的使用

UISlider是iOS中的滑块控件。
通常用于控制视频播放进度,控制音量等。
它也是继承于UIControl,滑块提供了一系列连续的值,滑块停在不同的位置,获取到滑块上的值也不同。

常用属性:

// 初始化
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(37.5, 100, 300, 30)];
slider.backgroundColor = [UIColor cyanColor];

// 设置轨迹颜色
[slider setMinimumTrackTintColor:[UIColor yellowColor]];
slider.maximumTrackTintColor = [UIColor purpleColor];

// 设置滑动按钮颜色(球)
slider.thumbTintColor = [UIColor grayColor];

// 设置最大值 和最小值 的图片
[slider setMinimumValueImage:[UIImage imageNamed:@"01-refresh"]];
[slider setMaximumValueImage:[UIImage imageNamed:@"03-loopback"]];
slider.selected = YES;
[slider setThumbImage:[UIImage imageNamed:@"03-loopback"] forState:(UIControlStateSelected)];
[slider setThumbImage:[UIImage imageNamed:@"02-redo"] forState:(UIControlStateNormal)];
[slider setThumbImage:[UIImage imageNamed:@"01-refresh"] forState:(UIControlStateHighlighted)];

// 设置滑块的初值 最大值 最小值
// 如果想设置初始位置 需要先把最大值 最小值设置上
// 再给初值 才会发生变化
slider.maximumValue = 10;
slider.minimumValue = 0;
slider.value = 2;

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

[self.view addSubview:slider];
[slider release];

UIImageView的使用

例题: ImageView动画(跑图)
silder控制 动画播放的时间间隔,并且 silder滑动到最大值 停止动画

self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(37.5, 150, 300, 300)];
self.imageView.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:self.imageView];
[self.imageView release];

// 构建一个图片的数组
NSMutableArray *imageArr = [NSMutableArray array];
for (int i = 1; i < 9; i++) {

// 把图片的名字 拼接出来
  NSString *imageName = [NSString stringWithFormat:@"%d",i];

 // 初始化每一张图片
  UIImage *image = [UIImage imageNamed:imageName];

// 把图片加到数组里
  [imageArr addObject:image];
}

// 设置imageView播放动画的数组
self.imageView.animationImages = imageArr;

// 设置时间间隔(播放完整一次10秒)
self.imageView.animationDuration = 10;

// 设置重复次数(零 代表无限次)
self.imageView.animationRepeatCount = 0;

// 让动画开始
[self.imageView startAnimating];

实现动画效果:(使用上面创建的Slider)

- (void)sliderAction:(UISlider *)slider
{
     NSLog(@"%.2f", slider.value);
     // 为了美观 停止的时候 添加一张占位图
     if (slider.value == slider.maximumValue) {
     [self.imageView stopAnimating];
     self.imageView.image = [UIImage imageNamed:@"8"];
}else {
     self.imageView.animationDuration = slider.value;
     [self.imageView startAnimating];
}
}

这里写图片描述

UIControl的作用

UIControl是所有控制控件(比如UIButton、UISlider、UISegmentedControl等)的基类。
只要跟控制有关的控件都是继承于该类。
UIControl的核⼼心功能:
为控制控件通过addTarget: action: forControlEvents: 方法来添加事件。
通过removeTarget: action: forControlEvents: 来移除事件。

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

UI笔记_UIControl及其子类

UIControl UIControl是所有控制控件(UI)
  • evenwlq
  • evenwlq
  • 2014年07月03日 20:59
  • 266

UIControl及其子类

1. UiSegmentedControl: initWithIterms:初始化方法 setTitle: forSegmentAtIndex:根据下标设置Title - (void)a...
  • Evelynzn
  • Evelynzn
  • 2015年10月19日 20:58
  • 298

UIControl 及其子类

一、UISegmentedControl使用 二、UISlider的使用 三、UIImageView的使用 四、UIControl的作用 五、已学类的继承关系...
  • lolevergreen
  • lolevergreen
  • 2015年08月31日 19:13
  • 333

第六讲 :UIControl及其⼦子类

本讲内容 一、UISegmentedControl的使⽤用 二、UISlider的使⽤用 三、UIImageView的使⽤用 四、UIControl的作⽤用五、已学类的继承关系 ...
  • qq_16706275
  • qq_16706275
  • 2014年12月02日 15:23
  • 446

UIControl和它的子类

UIControl的核心功能: 为控制控件通过addTarget:action:forControlEvents: 方法来添加事件; 通过remove:…来移除事件#import "MainViewC...
  • weichentai
  • weichentai
  • 2015年08月13日 20:02
  • 211

UIControl 子类的简单使用

#import "MainViewController.h" @interface MainViewController () @end @imp...
  • k476431
  • k476431
  • 2014年06月11日 21:27
  • 181

事件处理, UIControl的子类

// // RootViewController.m // Lesson05UIControl // // Created by lanouhn on 16/1/6. // Copyright...
  • qq_32780047
  • qq_32780047
  • 2016年01月07日 09:13
  • 223

UI基础-UIView及其子类

UIView UIView 代表一个矩形区域UIView *view = [[UIView alloc] initWithFrame:CGRectMake(150, 100, 150, 40)]; 加...
  • jt111666
  • jt111666
  • 2015年11月10日 21:34
  • 204

自定义控件-UIControl

当控件的父类添加手势类别时,控件的一些列动作事件会失效。
  • joneOS
  • joneOS
  • 2015年04月28日 13:30
  • 973

UI-第五讲:UIControl及其子类

UI-第五讲:UIControl及其子类 继承关系 UIControl 初识 UISwitch 的使用 UISlider 的使用 UISegmentedControl 的使用 UIPageContro...
  • Arlene_Q
  • Arlene_Q
  • 2015年12月13日 11:34
  • 197
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UI基础-UIControl及其子类
举报原因:
原因补充:

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