#import "MainViewController.h"
#define kScreenHeight CGRectGetHeight(self.view.bounds)//屏幕高度宏
#define kScreenWidth CGRectGetWidth(self.view.bounds)//屏幕宽度宏
@interface MainViewController ()
@end
@implementation MainViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//分段控件
UISegmentedControl *segmentedControl=[[[UISegmentedControl alloc]initWithItems:@[@"左视图",@"右视图"]]autorelease];
segmentedControl.frame=CGRectMake(20, 50, kScreenWidth-40, 30);
//设置默认选中分段的下标
segmentedControl.selectedSegmentIndex=0;
[segmentedControl addTarget:self action:@selector(handleSegmentAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:segmentedControl];
segmentedControl.tag=100;
//视图的宽度和间距
CGFloat viewWidth=120;
CGFloat viewHeight=200;
CGFloat offsetX=(kScreenWidth-viewWidth*2)/3;
for (int i=0; i<2; i++) {
UIView *aView=[[[UIView alloc]initWithFrame:CGRectMake(offsetX + (viewWidth +offsetX)*i, 100, viewWidth, viewHeight)]autorelease];
aView.backgroundColor=i?[UIColor greenColor]:[UIColor redColor];//条件运算符
[self.view addSubview:aView];
//添加tag
aView.tag=200+i;
}
//滑块
NSArray *colors=@[[UIColor redColor],[UIColor greenColor],[UIColor blueColor]];
CGFloat offsetY=20;//纵向偏移量
for (int i=0; i<colors.count; i++) {
UISlider *aSlider=[[[UISlider alloc]initWithFrame:CGRectMake(20, 400+(40+offsetY)*i, kScreenWidth-40, 40)]autorelease];
//设置最大最小值,和当前值
aSlider.minimumValue=0;
aSlider.maximumValue=1;
aSlider.value=0;
//设置tag
aSlider.tag=300+i;
//添加颜色
aSlider.minimumTrackTintColor=colors[i];
aSlider.thumbTintColor=colors[i];//拇指按钮颜色
[aSlider addTarget:self action:@selector(handleSliderAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:aSlider];
}
//开关
UISwitch *aSwitch=[[[UISwitch alloc]initWithFrame:CGRectMake(30, kScreenHeight-80, 0, 0)]autorelease];
aSwitch.on=YES;//设置开关当前状态
aSwitch.tintColor=[UIColor whiteColor];
aSwitch.thumbTintColor=[UIColor greenColor];
[aSwitch addTarget:self action:@selector(handleSwitchAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:aSwitch];
aSwitch.tag=400;
//数值加减器
UIStepper *aStepper=[[[UIStepper alloc]initWithFrame:CGRectMake(kScreenWidth-120, kScreenHeight-80, 0, 0)]autorelease];
aStepper.minimumValue=50;//最小值
aStepper.maximumValue=280;//最大值
aStepper.stepValue=5;//每次递增值
aStepper.value=200;//当前值
aStepper.tintColor=[UIColor magentaColor];
[aStepper addTarget:self action:@selector(handleStepperAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:aStepper];
aStepper.tag=401;
[self handleSegmentAction:segmentedControl];
}
-(void)handleSegmentAction:(UISegmentedControl *)sender{
UISlider *redSlider=(UISlider *)[self.view viewWithTag:300];
UISlider *greenSlider=(UISlider *)[self.view viewWithTag:301];
UISlider *blueSlider=(UISlider *)[self.view viewWithTag:302];
UISwitch *aSwitch=(UISwitch *)[self.view viewWithTag:400];
UIStepper *aStepper=(UIStepper *)[self.view viewWithTag:401];
UIView *currentView=[self.view viewWithTag:200+sender.selectedSegmentIndex];
[aSwitch setOn:currentView.hidden animated:YES];
aStepper.value=CGRectGetHeight(currentView.frame);
CGFloat red,green,blue;
[currentView.backgroundColor getRed:&red green:&green blue:&blue alpha:nil];
redSlider.value=red;
greenSlider.value=green;
blueSlider.value=blue;
}
-(void)handleSliderAction:(UISlider *)sender{
//得到三个滑块的当前值,作为颜色三原色的色值
CGFloat red=[(UISlider *)[self.view viewWithTag:300] value];
CGFloat green=[(UISlider *)[self.view viewWithTag:301] value];
CGFloat blue=[(UISlider *)[self.view viewWithTag:302] value];
//通过segmentControl当前选中的下标来获取被选中的视图
UISegmentedControl *segmentControl=(UISegmentedControl *)[self.view viewWithTag:100];
UIView *currentView=[self.view viewWithTag:200+segmentControl.selectedSegmentIndex];
//设定视图的背景颜色
currentView.backgroundColor=[UIColor colorWithRed:red green:green blue:blue alpha:1];
}
-(void)handleSwitchAction:(UISwitch *)sender{
UISegmentedControl *segentConteol=(UISegmentedControl *)[self.view viewWithTag:100];
UIView *currentView=[self.view viewWithTag:200 +segentConteol.selectedSegmentIndex];
currentView.hidden=sender.on;
}
-(void)handleStepperAction:(UIStepper *)sender{
UISegmentedControl *segentConteol=(UISegmentedControl *)[self.view viewWithTag:100];
UIView *currentView=[self.view viewWithTag:200 +segentConteol.selectedSegmentIndex];
CGRect frame=currentView.frame;
frame.size.height=sender.value;
currentView.frame=frame;
}