您的位置:首页 > 产品设计 > UI/UE

IOS--UI--LessonUIControl UIImageView/ UISegmentedControl

2015-07-10 19:17 513 查看
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

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: