IOS--UI--LessonUIControl UIImageView/ UISegmentedControl
2015-07-10 19:17
513 查看
UIcontrol 创建用户界面控件对象。
1.定义:在窗体上创建各种组件(比如、按钮、静态文本框、弹出式菜单等)。并指定这些组件的回调函数。
// UIImage 继承 NSObject 用来保存图片资源
UIImageView 用来显示图片的控件 相当于相框 用来显示 UIImage
// 1. UIImageView 加载静态图片
// 获取图片方式1
//获取图片方式2
//2. 建个相框
// 2. UIImageView 加载动态图片
注:动态是很多张 tiff 格式的图片组成的所以要先设定数组
3.等比缩放图片
// 4. UISegmentedControl 继承 UIControl 由多个分段组成 每个分段都是一个小按钮
4.1 创建一个 segmentControl 对象
// 5.UISlider 滑块控件
// 总结:
/*
1.UIControl 是控制类控件 的基类 凡是继承 UIControl 的控件 都可以继承点击事件的方法(addTarget: action:,)也可以 通过 removeTarget: action: 移除事件
2.当我们想让一个类拥有 addTarget:action: 只需要他继承自 UIControl
3.如果想定义一个视图 并能够响应事件 就让他继承 UIControl
*/
1.定义:在窗体上创建各种组件(比如、按钮、静态文本框、弹出式菜单等)。并指定这些组件的回调函数。
// UIImage 继承 NSObject 用来保存图片资源
UIImageView 用来显示图片的控件 相当于相框 用来显示 UIImage
// 1. UIImageView 加载静态图片
// 获取图片方式1
UIImage *image = [UIImage imageNamed:@"Pic.jpg"]; // 缺点:第一次找的时候比较麻烦 因为需要缓存一份 (浪费时间) // 优点:之后再使用在内存缓存的那一份
//获取图片方式2
//查看图片包得路径 NSLog(@"%@",[NSBundle mainBundle].bundlePath); NSString *filePath = [[NSBundle mainBundle]pathForResource:@"Pic" ofType:@"jpg"]; UIImage *image = [UIImage imageWithContentsOfFile:filePath]; // 优点:查找的时候比较方便,能通过路径直接拿到 节省时间 // 缺点:每次使用都要去通过路径查找
//2. 建个相框
UIImageView *imageView = [[UIImageView alloc]initWithImage:image]; imageView.frame = CGRectMake(0, 30, 320, 548); // 添加到视图上面 [self.view addSubview:imageView]; [imageView release];
// 2. UIImageView 加载动态图片
注:动态是很多张 tiff 格式的图片组成的所以要先设定数组
NSMutableArray *imageArray = [NSMutableArray arrayWithCapacity:22]; //arrayWithCapacity:后跟的数组就是图片的张数 for (int i =0; i <22; i++) { { NSString *imageName = [NSString stringWithFormat:@"zombie%d",i+1]; //获取文件路径 NSString *filePath = [[NSBundle mainBundle]pathForResource:imageName ofType:@"tiff"]; UIImage *image = [UIImage imageWithContentsOfFile:filePath]; } NSString *imageName = [NSString stringWithFormat:@"zombie%d.tiff",i+1]; UIImage *image = [UIImage imageNamed:imageName]; // 上面的可以简写成下面的格式 UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"zombie%d",i+1]]; [imageArray addObject:image]; } //建个相框 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(20, 30, 280, 508)]; //设置 imageView 播放的动态图片数组 imageView.animationImages = imageArray; // 设定动态图片的循环的次数 无限次循环是数字0 imageView .animationRepeatCount = 2; //设置一组 动态图片的播放速度 imageView .animationDuration = 0.2; //添加到父视图 [self.view addSubview: imageView]; [imageView release]; //开始播放动态图片 一定要加上否则不会自己动啦 [imageView startAnimating];
3.等比缩放图片
// 创建图片对象 UIImage *image = [UIImage imageNamed:@"Pic.jpg"]; // 创建 UIImageView对象 UIImageView *imageView = [[UIImageView alloc]initWithImage:image]; // 计算出 imageView 的高度 CGFloat height = 100*image.size.height/image.size.width; imageView .frame = CGRectMake(30, 20, 100, height); //添加到父视图 释放 [self.view addSubview:imageView]; [imageView release];
// 4. UISegmentedControl 继承 UIControl 由多个分段组成 每个分段都是一个小按钮
4.1 创建一个 segmentControl 对象
// 1.创建一个 segmentControl 对象 NSArray *itemArray = @[@"你的红色",@"你的黄色",@"你的绿色",@"你的蓝色"]; UISegmentedControl * segment = [[UISegmentedControl alloc]initWithItems:itemArray]; //设置范围 如果不设置它会默认系统给你的位置 segment.frame = CGRectMake(30, 20, 260, 40); // 设置默认选择中的分段(一出来就是选中了什么界面) segment.selectedSegmentIndex =2; // 设置边框颜色 segment.tintColor = [UIColor cyanColor]; // 设置分段的宽度 [segment setWidth:100 forSegmentAtIndex:0]; // 设置里面的字体 的大小 NSDictionary *dic = @{NSFontAttributeName:[UIFont boldSystemFontOfSize:17],NSForegroundColorAttributeName:[UIColor orangeColor]}; [segment setTitleTextAttributes:dic forState:UIControlStateNormal]; //添加到父视图 [self.view addSubview:segment]; [segment release]; // 2. segment 分段的点击事件 这个是继承父类的 东西 [segment addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged]; // #pragma mark ------实现点击事件方法------ -(void)segmentAction:(UISegmentedControl *)sender{ switch (sender.selectedSegmentIndex) { case 0: self.view.backgroundColor = [UIColor redColor]; break; case 1: self.view.backgroundColor = [UIColor yellowColor]; break; case 2: self.view.backgroundColor = [UIColor greenColor]; break; case 3: self.view.backgroundColor = [UIColor blueColor]; break; default: break; } }
// 5.UISlider 滑块控件
// 创建模块 UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(10, 100, 300, 40)]; // 设置划过区域的颜色 slider .minimumTrackTintColor = [UIColor redColor]; // 设置未滑过区域的颜色 slider.maximumTrackTintColor = [UIColor yellowColor]; // 设置滑竿的最大值 最小值 slider .minimumValue = 0.0; slider .maximumValue = 1.0; // 设置滑竿当前值 slider . value = 0.5; // 设置滑块的上面的图片 // [slider setThumbImage:[UIImage imageNamed:@"123"]forState:UIControlStateNormal]; // 添加到父视图 [self.view addSubview:slider]; [slider release]; [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged]; } //#pragma mark------实现滑块事件的方法----- -(void)sliderAction:(UISlider *)sender{ self.view.backgroundColor = [UIColor cyanColor]; self.view.alpha = sender.value;// 通过移动她的值 改变透明度
// 总结:
/*
1.UIControl 是控制类控件 的基类 凡是继承 UIControl 的控件 都可以继承点击事件的方法(addTarget: action:,)也可以 通过 removeTarget: action: 移除事件
2.当我们想让一个类拥有 addTarget:action: 只需要他继承自 UIControl
3.如果想定义一个视图 并能够响应事件 就让他继承 UIControl
*/
相关文章推荐
- quick3x_保证下标顺序排列,删除table中的元素
- Builder模式
- UIAlertView和UIActionSheet
- Flash Builder4编译慢报java heap space堆空间异常错误的解决方法
- UI 设计师的好网站
- BlockingQueue及其各个实现的分析整理
- Exynos4412 Android4.4 HDMI Porting Guid 第三篇
- Exynos4412 Android4.4 HDMI Porting Guid 第二篇
- HTC T328W刷机包 仿三星S5 UI美化 精简 S5落下
- UITextView自带的手机、网址识别和触发方法!
- [SoapUI] 比较两个不同环境下的XML Response, 从外部文件读取允许的偏差值,输出结果到Excel
- IOS之UITextField 禁止粘贴
- 解决:QWidget: Cannot create a QWidget when no GUI is being used 程序异常结束
- UIView之drawRect
- Exynos4412 Android4.4 HDMI Porting Guid 第一篇
- DelayQueue原理分析
- Core Bluetooth Programming Guide
- 理解 Android Build 系统
- POJ 1986 - Distance Queries(LCA‘ 在线算法RMQ)
- could not build module 'Foundation' ios QRCodeGenerator libqrencode