#import "MainViewController.h"
#define kScreenHeight CGRectGetHeight(self.view.bounds)//屏幕高度宏
#define KScreenWidth CGRectGetWidth(self.view.bounds)//屏幕宽度宏
@interfaceMainViewController ()
@end
@implementation MainViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view.
// 分段控件
UISegmentedControl*segementControl=[[UISegmentedControlalloc]initWithItems:@[@"左视图",@"右视图"]];
segementControl.frame=CGRectMake(20, 50, KScreenWidth-40, 30);
//设置分段默认选中的下标
segementControl.selectedSegmentIndex=0;
[segementControl addTarget:selfaction:@selector(handleSegementAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:segementControl];
[segementControl release];
//视图的宽度和间距
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)];
aView.backgroundColor=i?[UIColorgreenColor]:[UIColorredColor];
// 加 tag
aView.tag=200+i;
[self.view addSubview:aView];
[aView release];
}
//
NSArray*colors=@[[UIColorredColor],[UIColorgreenColor],[UIColorblueColor]];
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)];
// 设置最小值,最大值和当前值
aSlider.minimumValue=0;
aSlider.maximumValue=1;
aSlider.value=0;
aSlider.minimumTrackTintColor=colors[i];
aSlider.thumbTintColor=colors[i];
// 设置 tag
aSlider.tag=300+i;
[aSlider addTarget:selfaction:@selector(handleSliderAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:aSlider];
[aSlider release];
}
UISwitch*aSwitch=[[UISwitchalloc]initWithFrame:CGRectMake(30, kScreenHeight-80, 0, 0)];
aSwitch.on=NO;//设置当前开关状态,类似于分段中下标000
[aSwitch addTarget:selfaction:@selector(handleSwitchAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:aSwitch];
[aSwitch release];
UIStepper*aSteper=[[UIStepperalloc]initWithFrame:CGRectMake(KScreenWidth-120, kScreenHeight-80, 0, 0)];
aSteper.minimumValue=200;//计步器的最小值为视图的原始高度
aSteper.maximumValue=280;//计步器的最大值为视图的最终高度
aSteper.stepValue=5;//每次增加值
aSteper.value=200;//计步器的当前值
[aSteper addTarget:selfaction:@selector(handleSteperAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:aSteper];
[aSteper release];
// 设置 tag
segementControl.tag=100;
aSwitch.tag=400;
aSteper.tag=401;
[self handleSegementAction:segementControl];
}
-(void)handleSegementAction:(UISegmentedControl*)sender{
// 根据当前值改变控件值.(逆向思维)
UISlider*redSlider=(UISlider*)[self.viewviewWithTag:300];
UISlider*greenSlider=(UISlider*)[self.viewviewWithTag:301];
UISlider*blueSlider=(UISlider*)[self.viewviewWithTag:302];
UISwitch*aSwitch=(UISwitch*)[self.viewviewWithTag:400];
UIStepper*aSteper=(UIStepper*)[self.viewviewWithTag:401];
UIView*currentView=[self.viewviewWithTag:200+sender.selectedSegmentIndex];
[aSwitch setOn:currentView.hidden animated:YES];
aSteper.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.viewviewWithTag:300]value];
CGFloat green=[(UISlider*)[self.viewviewWithTag:301]value];
CGFloat blue=[(UISlider*)[self.viewviewWithTag:302]value];
// 通过 segementcontorl 当前选中的下标来获取被改变的视图
UISegmentedControl*segementControl=(UISegmentedControl*)[self.viewviewWithTag:100];
UIView*currrentView=[self.view viewWithTag:200+segementControl.selectedSegmentIndex];
// 设定视图的背景颜色
currrentView.backgroundColor=[UIColorcolorWithRed:red green:green blue:blue alpha:1];
}
-(void)handleSwitchAction:(UISwitch*)sender{
UISegmentedControl*segementControl=(UISegmentedControl*)[self.viewviewWithTag:100];
UIView*currentView=[self.viewviewWithTag:200+segementControl.selectedSegmentIndex];
currentView.hidden=sender.on;
}
-(void)handleSteperAction:(UIStepper*)sender{
UISegmentedControl*segementControl=(UISegmentedControl*)[self.viewviewWithTag:100];
UIView*currentView=[self.viewviewWithTag:200+segementControl.selectedSegmentIndex];
CGRect frame=currentView.frame;
frame.size.height=sender.value;
currentView.frame=frame;
}
- (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