ios学习笔记(三)UISlider与UISwitch控件

jopen 12年前

1 首先我们还是创建一个Single View Application,然后打开MainStoryboard_iphone.storyboard,在IB中添加一个UISlider控件和一个Label,这个Label用来显示Slider的值。

选中新加的Slider控件,打开Attribute Inspector,修改属性值,设置最小值为0,最大值为100,当前值为0.5,并确保勾选上Continuous,如下图:

ios学习笔记(三)UISlider与UISwitch控件

接着我们放上UISwitch控件,就是很像开关的那种控件,它只有两个状态:on和off,全都放上去效果就是这样的:

ios学习笔记(三)UISlider与UISwitch控件

 

2.好了我们开始写代码喽:ViewController.h:

#import     @interface ViewController : UIViewController{      UILabel *sliderlabel;      UISwitch *leftSwitch;      UISwitch *rightSwitch;  }    @property (nonatomic,retain) IBOutlet UILabel *sliderlabel;  @property (nonatomic,retain) IBOutlet UISwitch *leftSwitch;  @property (nonatomic,retain) IBOutlet UISwitch *rightSwitch;    - (IBAction)sliderChanged:(id)sender;  - (IBAction)switchChanged:(id)sender;  @end

接着是实现 ViewController.m:

#import "ViewController.h"    @interface ViewController ()    @end    @implementation ViewController  @synthesize sliderlabel;  @synthesize leftSwitch;  @synthesize rightSwitch;    - (void)viewDidLoad  {      [super viewDidLoad];   // Do any additional setup after loading the view, typically from a nib.  }    - (void)viewDidUnload  {      [super viewDidUnload];      // Release any retained subviews of the main view.  }    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  {      if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {          return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);      } else {          return YES;      }  }    - (IBAction)sliderChanged:(id)sender{      UISlider *slider=(UISlider*)sender;      int progressAsInt=(int)(slider.value+0.5f);      NSString *newText=[[NSString alloc] initWithFormat:@"%d",progressAsInt];      sliderlabel.text=newText;      [newText release];      NSLog(@"%d",progressAsInt);  }      - (IBAction)switchChanged:(id)sender{      UISwitch *whichSwich=(UISwitch *)sender;      BOOL setting=whichSwich.isOn;      [leftSwitch setOn:setting animated:YES];      [rightSwitch setOn:setting animated:YES];  }    - (void)dealloc{      [sliderlabel release];      [leftSwitch release];      [rightSwitch release];      [super dealloc];  }  @end

3.剩下的就是连接操作和输出口:

将slider控件的value changed事件与sliderChanged方法连接在一起,将swich控件的value changed事件与swichChanged方法连接在一起,当然还要把lable控件和swich控件的输出与ViewController的相应控件接口连接在一起。

最终实现的效果如下面两张图:                                                         

ios学习笔记(三)UISlider与UISwitch控件

 

ios学习笔记(三)UISlider与UISwitch控件