需求:1.对两个视图对象进行:背景颜色,显示/隐藏,高度设置.但是每次只能设置一个视图对象.
2.创建UISemnebtedControl对象.两个分段显示:红色视图和绿色视图.默认选中第一个分段.
3.分段控件的作用:限制每次只能操作一个视图对象.
4.创建两个UIview累i小南国的视图对象,背景颜色分别为红色和绿色
5.创建三个UISlider对象,分别设置背景色的red,green,blue.即滑动任何一个滑块,都能改变操作视图的背景颜色.
6.创建UISwitch对象.关闭,隐藏被操作视图,打开:显示被操作视图.默认状态为打开.
7.创建UIStepper对象."+"增加被操作视图的高度."-"缩小被操作视图的高度.
主要代码:
#import "RootViewController.h"
@interface RootViewController (){
UIView *_redView;
UIView *_greenView;
UISegmentedControl *_segmentView;
UISwitch *_switchView;
UISlider *_blueSlider;
UISlider *_redSlider;
UISlider *_greenSlider;
UIStepper *_stepper;
}
@end
@implementation RootViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor whiteColor];
//创建UIsegmentView
NSArray *title = @[@"红色视图",@"绿色视图"];
_segmentView = [[UISegmentedControl alloc] initWithItems:title];
_segmentView.selectedSegmentIndex = 0;
_segmentView.frame = CGRectMake(50, 40, 200, 40);
[_segmentView addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:_segmentView];
[_segmentView release];
//创建视图
_redView = [[UIView alloc] initWithFrame:CGRectMake(40, 120, 100, 200)];
_redView.backgroundColor = [UIColor redColor];
[self.view addSubview:_redView];
[_redView release];
_greenView = [[UIView alloc] initWithFrame:CGRectMake(160, 120, 100, 200)];
_greenView.backgroundColor = [UIColor greenColor];
[self.view addSubview:_greenView];
[_greenView release];
//创建UISlider
UILabel *redLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 330, 40, 40)];
redLabel.text = @"红色";
[self.view addSubview:redLabel];
[redLabel release];
_redSlider = [[UISlider alloc] initWithFrame:CGRectMake(110, 350, 150, 10)];
_redSlider.maximumValue = 1.0;
_redSlider.minimumValue = 0.0;
[_redSlider addTarget:self action:@selector(handleSlider:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:_redSlider];
[_redSlider release];
UILabel *greenLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 370, 40, 40)];
greenLabel.text = @"绿色";
[self.view addSubview:greenLabel];
[greenLabel release];
_greenSlider = [[UISlider alloc] initWithFrame:CGRectMake(110, 390, 150, 10)];
_greenSlider.maximumValue = 1.0;
_greenSlider.minimumValue = 0.0;
[_greenSlider addTarget:self action:@selector(handleSlider:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:_greenSlider];
[_greenSlider release];
UILabel *blueLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 410, 40, 40)];
blueLabel.text = @"蓝色";
[self.view addSubview:blueLabel];
[blueLabel release];
_blueSlider = [[UISlider alloc] initWithFrame:CGRectMake(110, 430, 150, 10)];
_blueSlider.maximumValue = 1.0;
_blueSlider.minimumValue = 0.0;
[_blueSlider addTarget:self action:@selector(handleSlider:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:_blueSlider];
[_blueSlider release];
//UIStepper
_stepper = [[UIStepper alloc] initWithFrame:CGRectMake(180, 500, 50, 40)];
_stepper.backgroundColor = [UIColor whiteColor];
[_stepper addTarget:self action:@selector(stepperAction:) forControlEvents:UIControlEventValueChanged];
[_stepper setMinimumValue:0];
[_stepper setMaximumValue:100];
_stepper.stepValue = 20;//每次递增
[_stepper setWraps:YES];
[_stepper setContinuous:YES];
[self.view addSubview:_stepper];
[_stepper release];
//UISwitch
_switchView = [[UISwitch alloc] initWithFrame:CGRectMake(50, 500, 40, 10)];
_switchView.on = NO;//设置初始化为打开状态
[_switchView addTarget:self action:@selector(switchAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:_switchView];
[_switchView release];
}
- (void)redChange{
_redView.backgroundColor =[UIColor colorWithRed:1 -_redSlider.value green:1 -_greenSlider.value blue: 1-_blueSlider.value alpha:1.0];
}
- (void)greenChange{
_greenView.backgroundColor =[UIColor colorWithRed:1 -_redSlider.value green:1 - _greenSlider.value blue:1 - _blueSlider.value alpha:1.0];
}
- (void)handleSlider:(UISlider *)slider{
switch (_segmentView.selectedSegmentIndex) {
case 0:
[self redChange];
break;
case 1:
[self greenChange];
break;
default:
break;
}
}
- (void)segmentAction:(UISegmentedControl *)segment{
}
- (void)switchAction:(UISwitch *)sh{
if (_switchView.on == YES) {
if(_segmentView.selectedSegmentIndex == 0){
_redView.hidden = YES;
_redSlider.userInteractionEnabled = NO;
_greenSlider.userInteractionEnabled = NO;
_blueSlider.userInteractionEnabled = NO;
_stepper.userInteractionEnabled = NO;
}else if (_segmentView.selectedSegmentIndex == 1){
_greenView.hidden = YES;
_redSlider.userInteractionEnabled = NO;
_greenSlider.userInteractionEnabled = NO;
_blueSlider.userInteractionEnabled = NO;
_stepper.userInteractionEnabled = NO;
}
}else{
if (_segmentView.selectedSegmentIndex == 0) {
_redView.hidden = NO;
_redSlider.userInteractionEnabled = YES;
_greenSlider.userInteractionEnabled = YES;
_blueSlider.userInteractionEnabled = YES;
_stepper.userInteractionEnabled = YES;
}else if (_segmentView.selectedSegmentIndex == 1){
_greenView.hidden = NO;
_redSlider.userInteractionEnabled = YES;
_greenSlider.userInteractionEnabled = YES;
_blueSlider.userInteractionEnabled = YES;
_stepper.userInteractionEnabled = YES;
}
}
}
- (void)stepperAction:(UIStepper *)stepper{
int temp = stepper.value;
if (0 == _segmentView.selectedSegmentIndex) {
//_redView.center = CGPointMake(temp, temp);
_redView.bounds = CGRectMake(temp, temp, temp, temp);
}else if (1 == _segmentView.selectedSegmentIndex){
_greenView.bounds = CGRectMake(_greenView.bounds.origin.x, _greenView.bounds.origin.y, temp, temp);
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
@end