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];
}
效果图:

——————————————————————————————
#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;


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

UIController子类控件&nbsp;UI_06的更多相关文章

  1. TControl.WMLButtonUp的inherited的作用——是为了给子类控件新的处理消息的机会

    意外注意到这个小细节: procedure TControl.WMLButtonUp(var Message: TWMLButtonUp); begin inherited; // 注意,如果是直接点 ...

  2. ListView中Item与Checkable子类控件抢焦点问题

    Android开发中,经常需要为ListView定制Adapter,绑定各种子类控件.如果Item包含Button等Checkable的控件,那么就会发生点击Item无法响应的问题.原因是自己定义的I ...

  3. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

  4. Android ListView 子控件点击事件

    android:descendantFocusability beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只 ...

  5. Android:控件布局(相对布局)RelativeLayout

    RelativeLayout是相对布局控件:以控件之间相对位置或相对父容器位置进行排列. 相对布局常用属性: 子类控件相对子类控件:值是另外一个控件的id android:layout_above-- ...

  6. Android关于ListView中item与控件抢夺焦点的那些事

    在开发中,listview可以说是我们使用最频繁的控件之一了,但是关于listview的各种问题也是很多.当我们使用自定义布局的Listview的时候,如果在item的布局文件里面存在Button或者 ...

  7. OnClick事件的Sender参数的前世今生——TWinControl.WinProc优先捕捉到鼠标消息,然后使用IsControlMouseMsg函数进行消息转发给图形子控件(意外发现OnClick是由WM_LBUTTONUP触发的)

    这是一个再普通不过的Button1Click执行体: procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('I am B ...

  8. ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决的方法

    fragment中加入了button和checkbox这些控件.此时这些子控件会将焦点获取到.所以经常当点击item时变化的是子控件.item本身的点击没有响应. 这时候就能够使用descendant ...

  9. 控件之ReleLayout属性

    Android:控件布局(相对布局)RelativeLayout RelativeLayout是相对布局控件:以控件之间相对位置或相对父容器位置进行排列. 相对布局常用属性: 子类控件相对子类控件:值 ...

随机推荐

  1. Oracle中case用法总结

    --case语句的种类: .简单case语句 语法: case exp when comexp then returnvalue ... when comexp then returnvalue el ...

  2. Go 语言多维数组

    Go 语言支持多维数组,以下为常用的多维数组声明方式: var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type 以下实例声明了三维的整型数组: ...

  3. 0426html常用标签属性

    一.基础语法 标签:作为网页的最小单元 1.双标签 内容的容器 2.单标签 控制性内容 注释    每一个模块都要写清楚注释 二.基本结构 <!DOCTYPE html>          ...

  4. android launcher 之踩到的坑

    需求: 1. 用android系统launcher 隐藏主菜单 所有应用显示在桌面 即workspace上: 2.隐藏launcher上方默认的google search: 3.切换一套launche ...

  5. Android艺术开发探索——第二章:IPC机制(下)

    Android艺术开发探索--第二章:IPC机制(下) 我们继续来讲IPC机制,在本篇中你将会学习到 ContentProvider Socket Binder连接池 一.使用ContentProvi ...

  6. springMVC源码分析--异常处理机制HandlerExceptionResolver执行原理(二)

    上一篇博客springMVC源码分析--异常处理机制HandlerExceptionResolver简单示例(一)中我们简单地实现了一个异常处理实例,接下来我们要介绍一下HandlerExceptio ...

  7. [csdn markdown]使用摘记二 快捷键及导入导出Markdown文件

    csdn推出了新的编辑器markdown,对于习惯使用离线编辑的人员来说是个大的福利,比如上班的时候,不能联网,但是又有好些知识点需要记录,等到下班了呢,又想直接把这些排版格式良好的文件直接上传到cs ...

  8. Java异常处理机制难点解惑-用代码说话

    是否需要看这篇文章? 下面的例子中,如果正常执行返回值多少? 如果出现了ArithmeticException返回值多少? 如果出现非ArithmeticException(如NullPointerE ...

  9. Android捕获全局异常

    Android捕获全局异常 程序避免不了出现bug,导致程序崩溃,为了尽量不影响用户体验,可以全局捕获异常 效果图 异常捕获处理前 异常捕获处理后(将程序重新启动) 捕获异常的工具类 package ...

  10. Linux 环境下一些常用命令(四)

    转自 http://www.oschina.net/translate/20-advanced-commands-for-middle-level-linux-users 31. 命令: rm 'rm ...