UISegmentedControl是开发中经常会使用到,所以刚刚在学习的时候也重点的看了下该控件
进度条和滑动条一半很少会使用到(下载的时候会经常使用到该属性),android的进度条和滑动的设置比ios复杂很多
先上图
1,进度条
/**进度条的使用 1.创建UIProGressView对象 2,创建定时器 3,将定时器的值与进度条的长度关联setProgress 4,释放对象 */ //进度条的使用UIProgressView progress=[[UIProgressView alloc]initWithFrame:CGRectMake(50, 250, 300, 150)]; progress.progressViewStyle=UIProgressViewStyleDefault; progress.progressTintColor=[UIColor redColor];//设置进度条的颜色,下面设置了图片会覆盖掉该颜色 progress.trackTintColor=[UIColor grayColor];//设置背景柱状图的颜色 progress.progressImage=[UIImage imageNamed:@"login.png"];//图片替代进度条 progress.transform=CGAffineTransformMakeScale(1.0f, 100.0f);//设置进度条的高度 [self.view addSubview:progress]; [progress release]; // //创建定时器,一秒执行一次 time=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(show) userInfo:nil repeats:1]; proValue=1.0;
方法:
//点击事件 -(void)show{ // NameBean *bean=[[NameBean alloc]init]; // bean.name=@"百合不是茶next"; // bean.address=@"湖南next"; // bean.age=122; // // ViewController *vc =[[ViewController alloc]init]; // [delegate getOneNameBean:bean];//设置代理数据 // [self.navigationController pushViewController:vc animated:1]; // // [bean release]; // [vc release]; ++proValue; if (proValue>10) { //停止定时器 [time invalidate]; //计数器停止后,进度条重置 [progress setProgress:0]; }else{ //进度条停止前进 [progress setProgress:proValue/10]; }
注意:
进度条的方法使用了定时器,事件处理也是在定时器中操作的
NSTimer *time=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(show) userInfo:nil repeats:1];
2,滑动条
/** 滑动条 UISlider 1,创建UISlider的对象 2,指定滑动区间 3,设置滑动事件 4,释放 */ slider=[[UISlider alloc]initWithFrame:CGRectMake(50, 300, 300, 150)]; //指定最小值 slider.minimumValue=0; //指定最大值 slider.maximumValue=100; //指定可变最大值50 slider.value=50; //设置点击实现 [slider addTarget:self action:@selector(getSliderValue) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:slider]; [slider release];
方法
//滑动条的事件方法。 -(void)getSliderValue{ NSLog(@"滑动条的值是=%f",slider.value); // [progress setProgress:slider.value]; }
运行:滑动时:
2015-12-20 16:04:01.755 viewDemo[1125:189580] 滑动条的值是=16.666666
2015-12-20 16:04:01.772 viewDemo[1125:189580] 滑动条的值是=17.222218
2015-12-20 16:04:01.795 viewDemo[1125:189580] 滑动条的值是=17.444443
2015-12-20 16:04:01.800 viewDemo[1125:189580] 滑动条的值是=17.444443
3,分隔栏
/** 分格拦控件UISegmentControl */ segment=[[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"买入",@"卖出",nil]]; segment.frame=CGRectMake(50, 500, 300, 100); segment.selectedSegmentIndex=1;//默认选中第一个 // [segment setImage:[UIImage imageNamed:@"login.png"] forSegmentAtIndex:1];//设置选中的背景图片 // segment.segmentedControlStyle=UISegmentedControlSegmentCenter;//设置风格 //插入数据 // [segment insertSegmentWithImage:[UIImage imageNamed:@"login.png"] atIndex:1 animated:0]; //背景图片的设置 [segment setBackgroundImage:[UIImage imageNamed:@"login.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; [segment setBackgroundImage:[UIImage imageNamed:@"bk.jpg"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; //点击事件 [segment addTarget:self action:@selector(getSegment) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:segment]; [segment release];
点击事件
//分格拦控件事件 -(void)getSegment{ int n=segment.selectedSegmentIndex; [segment setBackgroundImage:[UIImage imageNamed:@"bk.jpg"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; NSLog(@"%d,标题是=%@",n,segment); }
设置选中背景图片
[segment setBackgroundImage:[UIImage imageNamed:@"bk.jpg"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
设置未选中背景图片
[segment setBackgroundImage:[UIImage imageNamed:@"login.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
完整代码:
// // ViewController2.m // viewDemo // // Created by wang on 15/12/20. // Copyright © 2015年 wang. All rights reserved. // #import "ViewController2.h" #import "ViewController.h" #import "NameBean.h" @interface ViewController2 (){ UIProgressView *progress; NSTimer *time; double proValue; UISlider *slider; UISegmentedControl *segment; } @end @implementation ViewController2 @synthesize nb; @synthesize delegate; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. NSLog(@"%@",nb.address); self.title=@"控件的简单使用"; //UIButton的使用 UIButton *btn= [[UIButton alloc]initWithFrame:CGRectMake(300, 100, 100, 100)]; btn.backgroundColor=[UIColor yellowColor]; //设置文字 // [btn setTitle:@"按钮" forState:UIControlStateNormal]; // // //获取标题的名字 // NSString *titleName=[btn titleForState:UIControlStateNormal]; // NSLog(@"获取到标题的名字=%@",titleName); //设置图片 [btn setBackgroundImage:[UIImage imageNamed:@"login.png"] forState:UIControlStateNormal]; //获取按钮图片的名字 UIImage *image=[btn imageForState:UIControlStateNormal]; NSLog(@"图片的名称=%@",[image imageAsset]); //按钮的点击事件 [btn addTarget:self action:@selector(show) forControlEvents:UIControlEventTouchUpInside]; //移除点击事件 // [btn removeTarget:self action:@selector(show) forControlEvents:UIControlEventTouchUpInside]; //按钮的外观控制 //添加到View [self.view addSubview:btn]; //释放 [btn release]; /**进度条的使用 1.创建UIProGressView对象 2,创建定时器 3,将定时器的值与进度条的长度关联setProgress 4,释放对象 */ //进度条的使用UIProgressView progress=[[UIProgressView alloc]initWithFrame:CGRectMake(50, 250, 300, 150)]; progress.progressViewStyle=UIProgressViewStyleDefault; progress.progressTintColor=[UIColor redColor];//设置进度条的颜色,下面设置了图片会覆盖掉该颜色 progress.trackTintColor=[UIColor grayColor];//设置背景柱状图的颜色 progress.progressImage=[UIImage imageNamed:@"login.png"];//图片替代进度条 progress.transform=CGAffineTransformMakeScale(1.0f, 100.0f);//设置进度条的高度 [self.view addSubview:progress]; [progress release]; // //创建定时器,一秒执行一次 time=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(show) userInfo:nil repeats:1]; proValue=1.0; /** 滑动条 UISlider 1,创建UISlider的对象 2,指定滑动区间 3,设置滑动事件 4,释放 */ slider=[[UISlider alloc]initWithFrame:CGRectMake(50, 300, 300, 150)]; //指定最小值 slider.minimumValue=0; //指定最大值 slider.maximumValue=100; //指定可变最大值50 slider.value=50; //设置点击实现 [slider addTarget:self action:@selector(getSliderValue) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:slider]; [slider release]; /** 分格拦控件UISegmentControl */ segment=[[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"买入",@"卖出",nil]]; segment.frame=CGRectMake(50, 500, 300, 100); segment.selectedSegmentIndex=1;//默认选中第一个 // [segment setImage:[UIImage imageNamed:@"login.png"] forSegmentAtIndex:1];//设置选中的背景图片 // segment.segmentedControlStyle=UISegmentedControlSegmentCenter;//设置风格 //插入数据 // [segment insertSegmentWithImage:[UIImage imageNamed:@"login.png"] atIndex:1 animated:0]; //背景图片的设置 [segment setBackgroundImage:[UIImage imageNamed:@"login.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; [segment setBackgroundImage:[UIImage imageNamed:@"bk.jpg"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; //点击事件 [segment addTarget:self action:@selector(getSegment) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:segment]; [segment release]; } -(void)viewDidAppear:(BOOL)animated{ } //分格拦控件事件 -(void)getSegment{ int n=segment.selectedSegmentIndex; [segment setBackgroundImage:[UIImage imageNamed:@"bk.jpg"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; NSLog(@"%d,标题是=%@",n,segment); } //滑动条的事件方法。 -(void)getSliderValue{ NSLog(@"滑动条的值是=%f",slider.value); // [progress setProgress:slider.value]; } //点击事件 -(void)show{ // NameBean *bean=[[NameBean alloc]init]; // bean.name=@"百合不是茶next"; // bean.address=@"湖南next"; // bean.age=122; // // ViewController *vc =[[ViewController alloc]init]; // [delegate getOneNameBean:bean];//设置代理数据 // [self.navigationController pushViewController:vc animated:1]; // // [bean release]; // [vc release]; ++proValue; if (proValue>10) { //停止定时器 [time invalidate]; //计数器停止后,进度条重置 [progress setProgress:0]; }else{ //进度条停止前进 [progress setProgress:proValue/10]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end