`
coolerbaosi
  • 浏览: 721857 次
文章分类
社区版块
存档分类
最新评论

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

接着是实现 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的相应控件接口连接在一起。

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




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics