UIController子类控件 UI_06

简介:
1、UIImageView  是用来显示图片的控件,相当于相框,用来显示UIImage对象           
    //初始化UIImage对象及为其加载图片
   
 //第一种方式
//    UIImage *image = [UIImage imageNamed:@"1.JPG"];
    第二种方式
    通过图片的路径加载图片
    通过应用程序包找出图片 NSBundle (应用程序包类)
    获取当前应用包对象
    //pathForResource: 资源名称 ofType: 资源类型
//    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"2" ofType:@"JPG"];
//    UIImage *image2 = [UIImage imageWithContentsOfFile:filePath];
两种优缺点和使用场景:
     第一种方式:如果这个图片资源被多次使用,使用第一种方式,此种方式会把图片添加到应用程序的缓存中,多次使用比较方便 ,缺点:占用内存,优点:第二次使用速度很快
        第二种方式:如果这个图片资源只被使用一次,使用第二种方式,此种方式不会把图片对象添加到缓存中,缺点:耗时
注意:本节素材下载(百度云):UIImageView素材   http://pan.baidu.com/s/1t2H2m
                                                                          动画素材       http://pan.baidu.com/s/1eQk7fN0
——————————————————————————————
    //创建UIimageView 对象
   UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
   //配置属性
    //设定frame
    imageView.frame = [UIScreen mainScreen].bounds;
    //重新设置图片
    imageView.image = image2;
   [self.view addSubview:imageView];
    [imageView release];
    //UIImageView 加载动态图片
    //1.准备一组图片  使用数组存放
    NSMutableArray *imageArray = [NSMutableArray arrayWithCapacity:7];
     //使用for循环添加图片
    for (int i =1; i < 8; i ++) {
        //先确定图片的名字
        NSString *name = [NSString stringWithFormat:@"huoju_%d.tiff",i ];
        //初始化image对象
        UIImage *image = [UIImage imageNamed:name];
        //将图片添加到数组中
        [imageArray addObject:image];

    }
//     NSLog(@"%@",imageArray);//验证数组中是否添加完成
    //建立动画视图
    UIImageView  *fireImageView = [[UIImageView alloc]initWithFrame:CGRectMake(120, 100, 79, 106)];
    fireImageView.backgroundColor = [UIColor greenColor];
    //设置UIImageView 播放动态图片需要的数组
    fireImageView.animationImages  = imageArray;
    //设置播放速度
    fireImageView.animationDuration = 0.1;
    //设置播放图片重复次数
    fireImageView.animationRepeatCount = 1000;
    //启动动态图片播放 对动画的配置写在动画开始之前 VIP
    [fireImageView startAnimating];
    //添加到父视图
    [self.view addSubview:fireImageView];
    [fireImageView release];
    //等比缩放图片
    NSString *fielePath2 = [[NSBundle mainBundle]pathForResource:@"8" ofType:@"JPG"];
    UIImage *image3 = [UIImage imageWithContentsOfFile:fielePath2];
    //image3.size  中存放的是图片的宽和高
    NSLog(@"%@",NSStringFromCGSize(image3.size));
    //将UIImageView 设置为宽200,高为知,用来显示不是真的image3
    UIImageView *CFImageView = [[UIImageView alloc]initWithImage:image3];
    CGFloat h = image3.size.height * 200 / image3.size.width ;
    CFImageView.frame = CGRectMake(60, 200, 200, h);
    [self.view addSubview:CFImageView];
    [CFImageView release];
————————————————————————————
练习1:
//制作僵尸动态图片
       CGSize zSize = CGSizeZero;
    NSMutableArray *Zombil = [NSMutableArray arrayWithCapacity:22];
    for (int i = 1; i < 23; i ++) {
        //先确定图片的名字
        NSString *name1 = [NSString stringWithFormat:@"Zombie%d.tiff",i];
        //创建Image对象
        UIImage *image4 = [UIImage imageNamed:name1];
        //定义Size变量存储图片大小
        zSize = image4.size;
        //将图片添加到数组中
        [Zombil addObject:image4];
    }
    NSLog(@"%@",Zombil);//验证
    //建一个imageView 视图
    UIImageView *zombie1 = [[UIImageView alloc]initWithFrame:CGRectMake(10, 100, 300, zSize.height * 300 / zSize.height)];
    zombie1.backgroundColor = [UIColor redColor];
    //设置播放动画需要的数组
    zombie1.animationImages = Zombil;
    //设置播放速度
    zombie1.animationDuration = 3;
    //设置播放重复次数:给0是无限重复
    zombie1.animationRepeatCount = 100;
    //启动动画
    [zombie1 startAnimating];
    //加载到父视图
    [self.view addSubview:zombie1];
    [zombie1 release];

======================================================
2、UISwitch  开关控件 继承自 UIControl
    //创建Swictch对象
    UISwitch *aSwitch1 = [[UISwitch alloc]initWithFrame:CGRectMake(30, 50, 0, 0)];
    //配置Switch边框的渲染颜色
    aSwitch1.tintColor = [UIColor redColor];
    //配置控件内部的颜色
    aSwitch1.onTintColor = [UIColor blueColor];
    //设置按钮的颜色
    aSwitch1.thumbTintColor = [UIColor cyanColor];
    //给Switch 添加事件
    //self 指视图控制器对象
    [aSwitch1 addTarget:self action:@selector(handleSwitch:) forControlEvents:UIControlEventValueChanged];//当状态代表的数值改变的时候事件触发
    [self.view addSubview:aSwitch1];
    [aSwitch1 release];
}

#pragma mark switch 的关联事件
- (void)handleSwitch: (UISwitch *)aswitch{
    //首先应该或许开关控件当前的状态
    switch ((int)aswitch.on) {
        case YES:
            NSLog(@"开了");
            break;
            case NO:
            NSLog(@"关了");
            break;
        default:
            break;
    }
}
======================================================
3、UIStepper  加减控件   继承自 UIControl
   
  UIStepper *aStep = [[UIStepper alloc]initWithFrame:CGRectMake(100, 100, 0, 0)];
   
 //设置边框颜色
    aStep.
tintColor = [UIColor redColor];
   
 //设置背景颜色
    aStep.
backgroundColor = [UIColor cyanColor];
   
 //设置step的最小值 默认最小值是0.0
    aStep.
minimumValue = 10.0;
   
 //设置step的最大值  默认最大值是100.0
    aStep.
maximumValue = 30.0;
   
 //长按按钮数值是否自动增加或减小,默认为YES
    aStep.
autorepeat = NO;
   
 //设置控件所代表的数值当大于最大值或者小于最小值的时候,是否可以从另一头开始
//    aStep.wraps = YES;
   
 //设置点击按钮时数值的变化值
    aStep.
stepValue = 10.0;
    //给aStep添加事件
    [aStep addTarget:self action:@selector(handleStepper : ) forControlEvents:(UIControlEventValueChanged)];
    [self.view addSubview:aStep];
    [aStep
 release];

}
//实现事件方法
- (void)handleStepper : (UIStepper *)stepper{
   
 //stepper.value 代表这个控件当前的数值
   
 NSLog(@"%f",stepper.value);
}
=========================================================
4、UISegmentedControl  分段控制器,此控件有多个分段组成,每一个分段相当于一个button
    NSArray *titles = @[@"红色",@"绿色背景",@"蓝色",@"橙色",@"紫色"];
    //创建segmentControl 对象,并为每个分段添加title
    UISegmentedControl *aSegment = [[UISegmentedControl alloc]initWithItems:titles];
    //segmentControl 每个标题的宽度默认是等分总宽度的
    aSegment.frame = CGRectMake(20, 40, 280, 40);
    //设置segmentControl的边框颜色
    aSegment.tintColor = [UIColor magentaColor];
    //设置默认选中的分段
    aSegment.selectedSegmentIndex = 0;
    //修改分段的宽度

    [aSegment setWidth:60 forSegmentAtIndex:1];
    //给segmentControl 关联事件
    [aSegment addTarget:self action:@selector(handlSegment : ) forControlEvents:(UIControlEventValueChanged)];
    //添加父视图
    [self.view addSubview:aSegment];
    [aSegment release];
}
   ————————————————————
#pragma mark  segmentControl 的关联事件
- (void)handlSegment : (UISegmentedControl *)segment{
//    segment.selectedSegmentIndex   返回当前分段控制器被选中的下标
    NSLog(@"%ld",segment.selectedSegmentIndex);//验证
    self.view.backgroundColor = [UIColor blueColor];
    switch (segment.selectedSegmentIndex) {
        case 0:
            self.view.backgroundColor = [UIColor redColor];
            break;
            case 1:
            self.view.backgroundColor = [UIColor greenColor];
            break;
            case 2:
            self.view.backgroundColor = [UIColor blueColor];
            break;
            case 3:
            self.view.backgroundColor = [UIColor orangeColor];
            break;
            case 4:
            self.view.backgroundColor = [UIColor purpleColor];
            break;
        default:
            break;
    }
}
================================================
5、UISlider  滑块控件,继承自UIControl ,主要用来显示当前播放进度,控制音量或进度
(注意:必须记忆的方法)
    UISlider *aSlider = [[UISlider alloc]initWithFrame:CGRectMake(20, 100, 280, 30)];
   
 //设置属性
   
 //设置滑块最小值

    aSlider.
minimumValue = 0.2;
   
 //设置滑块最大值
    aSlider.
maximumValue = 1.0;
   
 //设置滑块当前的数值(或位置)
    aSlider.
value = 0.5;
   
 //设置滑过区域的颜色
    aSlider.
minimumTrackTintColor = [UIColor redColor];
   
 //设置未滑过区域的颜色
    aSlider.
maximumTrackTintColor = [UIColor whiteColor];
   
 //设置滑块上的图片
    [aSlider
 setThumbImage:[UIImage imageNamed:@"slider"] forState:UIControlStateNormal];
 
 //关联时间
    [aSlider addTarget:self action:@selector(handleSlinder : ) forControlEvents:(UIControlEventValueChanged)];
    [self.view addSubview:aSlider];
    [aSlider release];
}
效果图:

UIController子类控件 <wbr>UI_06 —————— ————————————————————————
#pragma mark slider的关联时间
- (void)handleSlinder :  (UISlider *)aSlider{
   
 //通过滑块控制视图的透明度
   
 self.view.alpha = aSlider.value;
    //value 返回的是当前滑块所在位置代表的数值
    //NSLog(@"%.2f",aSlider.value);//验证使用,用过要注掉
}

=========================================================
总结:UIControll 是控制控件的基类,凡是继承自该类的子类都可以通过addTarget: action: forControlEvents : 这个方法添加响应时间,UIontrol类的实现类似我们学过的target ... action 设计模式, 所以如果你想自定义一个视图,而且还是能够响应事件的,那就让它继承自UIControl;

欢迎学习本文,未经博主许可,禁止转载!

转自:http://blog.csdn.net/qq_31810357
相关文章
UIController子类控件&amp;nbsp;UI_06
1、UIImageView  是用来显示图片的控件,相当于相框,用来显示UIImage对象                //初始化UIImage对象及为其加载图片     //第一种方式 //    UIImage *image = [UIImage imageNamed:@"1.
632 0
|
5月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
5月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
|
5月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
|
5月前
|
JSON 前端开发 测试技术
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
|
5月前
|
缓存 JavaScript 前端开发
如何理解 SAP UI5 的 sap.ui.define 函数?
如何理解 SAP UI5 的 sap.ui.define 函数?
|
5月前
|
监控 测试技术
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
|
5月前
|
开发者 UED
关于 SAP UI5 sap.m.Column 的 demandPopin 属性
关于 SAP UI5 sap.m.Column 的 demandPopin 属性
下一篇
无影云桌面