当前位置:编程学习 > wap >>

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

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

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

\

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

\

 

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

  
 
 
#import <UIKit/UIKit.h>  
 
@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 
#import <UIKit/UIKit.h> @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 
#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的相应控件接口连接在一起。
 




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

\

 

\           

摘自 亨利摩根的专栏
 

补充:移动开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,