一 UIControl 是所有控制类控件的基类.
·  比如UIButton    UISlider     UISegmentedControl   等只要跟控件有关系的都继承于UIControl类
·  核心功能:   
为控制控件通过addTarget: action:forControlEvents: 方法来添加事件
通过removeTarget:action: forControlEvents: 来一出事件
二 UISegmentedControl 是可以实现单选的控件
·   UISegmentedControl 是iOS 中的分段控件
·   每一个segment都能被点击 相当于集成了若干个Button
·   通常我们会点击不同的segment来切换不同的View
#define kW [UIScreen mainScreen].bounds.size.width
@implementation RootViewController
- (void)dealloc
{
    [_firstVC release];
    [_secondtVC release];
    [_thirdVC release];
    [super dealloc];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
 
   
   // 先把三个控制器的view 添加上
    [self addControllerView];
    // 再添加segmentsdView
    [self addImageSegmented];
}
// 创建
- (void)addSubViews
{
    // 创建显示用的标题数组
    NSArray *titleArray = @[@"第一",@"第二",@"第三"];
    // 用数组初始化 分段按钮
    UISegmentedControl *segmentControl = [[UISegmentedControl alloc]initWithItems:titleArray];
    // 设置一下背景颜色
    segmentControl.backgroundColor = [UIColor colorWithRed:0.440 green:0.905 blue:1.000 alpha:1.000];
    segmentControl.frame = CGRectMake((kW - 300) / 2, 30, 300, 40);
    // 选中时候默认是蓝色
    segmentControl.tintColor = [UIColor colorWithRed:0.256 green:0.552 blue:1.000 alpha:1.000];
  //  segmentControl.tintAdjustmentMode = UIViewTintAdjustmentModeAutomatic;
    // 设置索引处宽
    [segmentControl setWidth:120 forSegmentAtIndex:1];
    // 重要属性  设置选中的索引    默认是没有选中的
   // segmentControl.selectedSegmentIndex = 0;
   
   
    [self.view addSubview:segmentControl];
}

// 创建三个控制器出来  并且把控制器的view添加到self.view 上面
- (void)addControllerView
{
    // 创建控制器
   
    self.thirdVC = [[ThirdViewController alloc]init];
    [self.view addSubview:self.thirdVC.view];
    [_thirdVC release];
    self.secondtVC = [[SecondViewController alloc]init];
    [self.view addSubview:self.secondtVC.view];
    [_secondtVC release];
    self.firstVC = [[FirstViewController alloc]init];
    [self.view addSubview: self.firstVC.view];
    [_firstVC release];
    [self.view bringSubviewToFront:self.firstVC.view];
}
// 创建带图片的UISegmentedControl
- (void)addImageSegmented

{
// 如果使用图片必须使用镂空图
    UIImage *image1 = [UIImage imageNamed:@"20-gear2"];
    UIImage *image2 = [UIImage imageNamed:@"34-coffee"];
    UIImage *image3 = [UIImage imageNamed:@"53-house"];
   // UIImage *image4 = [UIImage imageNamed:@"O9Z~Z)AT~}K1~(()096SPUC.jpg"];
    NSArray *imageArray = @[image1, image3, image2];
    UISegmentedControl *segmentControl1 = [[UISegmentedControl alloc]initWithItems:imageArray];
    segmentControl1.frame = CGRectMake((kW - 300) / 2, 30, 300, 40);
    segmentControl1.backgroundColor = [UIColor colorWithRed:0.963 green:1.000 blue:0.940 alpha:1.000];
    segmentControl1.tintColor = [UIColor colorWithRed:1.000 green:0.447 blue:0.098 alpha:1.000];
    // 最重要的方法  添加点击方法
    // 这个方法是其父类 UIControl 的
    segmentControl1.selectedSegmentIndex = 0;
    [segmentControl1 addTarget:self action:@selector(actionSegmented:) forControlEvents:(UIControlEventValueChanged)];  // 此处的事件是通过数组的索引变化来知道点按的哪一个分段按钮 使用UIControlEventValueChanged 来判断的
    [self.view addSubview:segmentControl1];
    [segmentControl1 release];
}
// 用segmented实现界面之间的切换
/**
 *  1. 创建三个控制器 为了测试 加上背景
    2. 点哪个 就把哪个放到最前面来
    3. 显示的是啥 就是某个控制器的self.view
    4. 之前我们可以实现父视图中通过角标的视图罗列顺序将某个需要的控制器的视图方法到最前面来
    5. 因为放到最前面会挡到segmented 所以再将 segmented 放到最前面
 */
- (void)actionSegmented:(UISegmentedControl *)segment
{
    NSLog(@"%ld", segment.selectedSegmentIndex);
   
    switch (segment.selectedSegmentIndex) {
        case 0:
            [self.view bringSubviewToFront:self.firstVC.view];
          //  [self.view bringSubviewToFront:segment];
            NSLog(@"第一界面");
            break;
        case 1:
            [self.view bringSubviewToFront:self.secondtVC.view];
           // [self.view bringSubviewToFront:segment];
            NSLog(@"第二界面");
            break;
        case 2:
            [self.view bringSubviewToFront:self.thirdVC.view];
           // [self.view bringSubviewToFront:segment];
            NSLog(@"第三界面");
            break;
        default:
            break;
    }
   
    // 每次都要把segment放到最上面
    [self.view bringSubviewToFront:segment];
// if (segment.selectedSegmentIndex == 0) {
//        NSLog(@"第一界面");
//    } else if (segment.selectedSegmentIndex == 1) {
//        NSLog(@"第二界面");
//    } else if (segment.selectedSegmentIndex == 2) {
//        NSLog(@"第三界面");
//    }
}
三 UIImageView 除了能显示单张图片,还能处理一组图片的播放
- (void)dealloc
{
    [_imageView release];
    [_startButton release];
    [_stopButton release];
    [super dealloc];
}
- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self addSubViews];
    }
    return self;
}

// 视图的布局方法

- (void)addSubViews
{
    // 创建imageView
    self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake((kScreenWidth - 300) / 2, 100, 300, 300)];
    self.imageView.backgroundColor = [UIColor redColor];
    [self addSubview:self.imageView];
    [_imageView release];
    // 创建开始Button
    self.startButton = [UIButton buttonWithType:(UIButtonTypeCustom)];
    self.startButton.frame = CGRectMake(self.imageView.left, self.imageView.bottom + 20, 60, 30);
    [self.startButton setTitle:@"开始" forState:(UIControlStateNormal)];
    [self.startButton setTitle:@"开始" forState:(UIControlStateHighlighted)];
    [self.startButton setTitleColor:[UIColor grayColor] forState:(UIControlStateHighlighted)];

self.startButton.backgroundColor = [UIColor blueColor];
    [self addSubview:self.startButton];
    [_startButton release];
    // 创建结束按钮
    self.stopButton = [UIButton buttonWithType:(UIButtonTypeCustom)];
    self.stopButton.frame = CGRectMake(self.imageView.right - 60, self.imageView.bottom + 20, 60, 30);
    self.stopButton.backgroundColor = [UIColor blueColor];
    [self.stopButton setTitle:@"结束" forState:(UIControlStateNormal)];
    [self.stopButton setTitle:@"结束" forState:(UIControlStateHighlighted)];
    [self.stopButton setTitleColor:[UIColor grayColor] forState:(UIControlStateHighlighted)];
    [self addSubview:self.stopButton];

    [_stopButton release];  
}
@end
RootViewControl 里面
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
   
    ShuangJieView *sView = [[ShuangJieView alloc]initWithFrame:[UIScreen mainScreen].bounds];
    sView.backgroundColor = [UIColor grayColor];
    [self.view addSubview:sView];
    [sView release];
    NSMutableArray *imageArray = [NSMutableArray array];
    for (int i = 1; i < 6; i++) {
        NSString *imageName = [NSString stringWithFormat:@"%d", i];
        NSLog(@"%@", imageName);
        // 创建图片添加到数组里
        UIImage *image = [UIImage imageNamed:imageName];
        [imageArray addObject:image];
    }
   
    // 给imageView设置属性
    sView.imageView.animationImages = imageArray;
    sView.imageView.animationRepeatCount = 0;
    sView.imageView.animationDuration = 0.1;
   // [sView.imageView startAnimating];
    [sView.startButton addTarget:self action:@selector(actionStartButton:) forControlEvents:(UIControlEventTouchUpInside)];
    [sView.stopButton addTarget:self action:@selector(actionStopButton:) forControlEvents:(UIControlEventTouchUpInside)];
}
- (void)actionStartButton:(UIButton *)button
{ // 接受到view 值  除了tag    设置属性    还可以用以下的方法
    UIView *superView = button.superview;
    NSArray *subViews = superView.subviews;
    for (UIView *view in subViews) {
        if ([view isKindOfClass:[UIImageView class]]) {
            UIImageView *imageView = (UIImageView *)view;
            [imageView startAnimating];
        }
    }
}

- (void)actionStopButton:(UIButton *)button
{
    UIView *superView = button.superview;
    NSArray *subViews = superView.subviews;
    for (UIView *view in subViews) {
        if ([view isKindOfClass:[UIImageView class]]) {
            UIImageView *imageView = (UIImageView *)view;
            [imageView stopAnimating];
        }
    }

}
四 UISlider 是可以响应滑动事件的控件
- (void)addSlider{
    UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(30, 100, 300, 40)];
    slider.backgroundColor = [UIColor whiteColor];
    // 设置划过去的线的颜色
    slider.minimumTrackTintColor = [UIColor redColor];
    // 设置未划过线的颜色
    slider.maximumTrackTintColor = [UIColor greenColor];
    // 给中间球设置颜色
    slider.thumbTintColor = [UIColor orangeColor];
    // 设置图片
    // 设置滑动球的图片
    [slider setThumbImage:[UIImage imageNamed:@"29-heart"] forState:(UIControlStateNormal)];
    [slider setThumbImage:[UIImage imageNamed:@"77-ekg"] forState:(UIControlStateHighlighted)];
    [slider setThumbImage:[UIImage imageNamed:@"Selected"] forState:(UIControlStateSelected)];
    //slider.selected = YES;
    slider.minimumValueImage = [UIImage imageNamed:@"07-map-marker"];
    slider.maximumValueImage = [UIImage imageNamed:@"53-house"];
 // 重要属性
    [slider setMinimumValue:0];
    [slider setMaximumValue:100.0];
    slider.value = 50.0;
     [slider addTarget:self action:@selector(actionslider:) forControlEvents:(UIControlEventValueChanged)];
   
   
    [self.view addSubview:slider];
    [slider release];
}
- (void)actionslider:(UISlider *)slider
{
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 400, 300, 60)];
    label.backgroundColor = [UIColor whiteColor];
    label.text = [NSString stringWithFormat:@"%f", slider.value];
    label.textColor = [UIColor redColor];
    [self.view addSubview:label];
    [label release];
}

UI一揽子计划 6 (UIControl、UISegmentedControl、UIImageView插入数组图片、UISlider)相关推荐

  1. 【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50163725 一. 分段控件 (UISegmentedControl) 控件展 ...

  2. UI一揽子计划 5 (Target: Action:  、Protocol   Delegate、 UIImageView 、手势识别器)

    一.target/ action 设计模式      耦合是衡量⼀一个程序写的好坏的标准之一,      耦合是衡量模块与模块之间关联程度的指标      "高内聚,低耦合"是⾯面 ...

  3. UI一揽子计划 1 (UIView UILabel)

    第一天 1.UIView ·建立一个空模板后,首先将ARC模式关闭,因为iOS采用MRC模式,即手动管理内存. ·重写dealloc方法. - (void)dealloc { [_window rel ...

  4. UI一揽子计划 24 (MVC、通知、)

    一.MVC  Model - View - Controller 即  模型 - 视图 - 控制器 Modle (模型) 存储 处理数据 为应用程序提供数据. View (视图)展示用户界面视图,提供 ...

  5. UI一揽子计划 11 (自定义UITableViewCell、Cell 的自适应高度)

    一. 自定义UITableViewCell 在日常的编程中,系统提供的几种Cell 样式 往往不能满足我们的需求.所以需要我们给它进行自定义样式. 自定义Cell 就是创建一个UITableViewC ...

  6. UI一揽子计划 7 ( UIScrollView、 UIPageControl、综合所学简单相册)

    ---- 创建一个UIScrollView     UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen ma ...

  7. UI一揽子计划 4 (Touch 、摇一摇、响应者链)

    一.touch - (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event //开始触摸,就只被执行一次 {  //  NSLog(@ ...

  8. UI一揽子计划 19 (数据库管理系统、SQL语句、iOS 的数据库实现技术)

    一.数据库管理系统 1. 以一定的方式存储在一起; 2. 能为多个用户共享 3. 具有尽可能小的冗余度 4. 与程序彼此独立的数据集合 二.SQL语句 SQlite常用语句 注:SQlite语句 不区 ...

  9. UI一揽子计划 10 (UITableView 中cell 的编辑, 增加, 删除、UITableViewController 、)

    一.tableView的编辑 tableView 编辑的步骤:    *  1. 让tableView成为可编辑状态       编辑按钮触发方法    *  -1. 激活编辑状态 - (void)r ...

最新文章

  1. php pdo获取查询数据_php使用PDO获取结果集的方法
  2. linux查看硬件信息
  3. C++实现Base64编解码并应用于图片传输
  4. 熊猫分发_实用熊猫指南
  5. python基本词汇的特点_开课吧老师为你讲解 Python都有什么优点?
  6. 是什么构成了“人工智能”热潮?
  7. c语言井字棋二维数组,【C语言】简单实现三子棋(井字棋)小游戏
  8. c/c++进制转换方法汇总(含全部代码)
  9. typecho图标_handsome+Typecho美化过程【持续更新】包括踩坑解决办法
  10. 怎么写安卓手机脚本_干货!最火短视频脚本 分镜头教程合集40份
  11. ctf MISC 学习总结
  12. zabbix php问题 Call to undefined function array_column()
  13. 打印机连不上解决方案
  14. 解决JCE cannot authenticate the provider BC
  15. 【C++控制台实战】飞机大战控制台游戏源码
  16. 2017年6月大学英语六级真题(第一套)汉译英(每日一摸)
  17. nginx使用pagespeed
  18. matlab corrsep,MATLAB数据降维工具箱drtoolbox介绍
  19. python制作的点名神器(代码简单,适合初学者),老师再也不用发愁点名了
  20. Dell R720 安装 win2003 64位 的安装步骤以及注意事项

热门文章

  1. 信息论中的香农熵、条件熵、最大熵、相对熵、交叉熵理解
  2. EPIC无法登录 无法连接服务器解决办法
  3. matlab 位清零,单片机如何清零寄存器某一位,操作方法解析
  4. Android BLE低功耗蓝牙学习总结
  5. 关于 Python 当中式子 f1, f2 = f2, f1+f2 能否拆分成 f1 = f2 ; f2 = f1 + f2 的问题
  6. java数据库编程(13) 获取数据库更多信息
  7. 微信小程序input搜索解决中文问题(输入拼音) 实时搜索节流处理(bindinput 节流)
  8. 前端圈的贫富差距正在拉大?
  9. Bootstrap中的Affix插件
  10. 【并发编程】CPU流水线的探秘之旅