iOS开发-Day27UISwitch&UISlider&UIStepper&UISegmentedControl

1、UISwitch

1.UISwitch的初始化

UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectMake(54.0f, 16.0f, 100.0f, 28.0f)];

2.设置UISwitch的初始化状态

switchView.on = YES;//设置初始为ON的一边

 3.UISwitch事件的响应

[switchView addTarget:self action:@selector(switchAction:) forControlEvents:UIControlEventValueChanged];

2、UISlider

UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 0, 200, 20)]; //初始化     
slider.minimumValue = 0;//指定可变最小值   
slider.maximumValue = 100;//指定可变最大值     
slider.value = 50;//指定初始值   
[slider addTarget:self action:@selector(updateValue:) forControlEvents:UIControlEventValueChanged];//设置响应事件     
[self.view addSubview:slider];

-(IBAction)updateValue:(id)sender{
  //添加响应事件
  float f = slider.value; //读取滑块的值
}

//改变样式(图片)
slider.backgroundColor = [UIColorclearColor];  
[slider setMinimumTrackImage:[UIImageimageNamed:@"max.png"] forState:UIControlStateNormal];
[slider setMaximumTrackImage:[UIImageimageNamed:@"min.png"] forState:UIControlStateNormal];

3、UIStepper

UIStepper *stepper = [[UIStepper alloc] init];//初始化
    stepper.tag = 10;//设置唯一标识
    stepper.center = CGPointMake(160, 240);//
    stepper.minimumValue = 1; //设置最小值
    stepper.maximumValue = 30; //设置最大值
    stepper.stepValue = 2; //每次递增2
    stepper.value = 15; //初始值
    [stepper setWraps:YES]; //是否循环
    [stepper addTarget:self action:@selector(doTest) forControlEvents:UIControlEventValueChanged]
    [self.view addSubview:stepper];

4、UISegmentedControl

//1.初始化UISegmentedControl
SArray *segmentedArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",nil];  
UISegmentedControl *segmentedTemp = [[UISegmentedControl alloc]initWithItems:segmentedArray];  
self.segmentedControl = segmentedTemp;  
segmentedControl.frame = CGRectMake(10.0, 10.0, 300.0, 29.0);  

//2.常用属性及设置方法如下:  
//设置指定索引的题目  
[segmentedControl setTitle:@"1" forSegmentAtIndex:1];  
//设置指定索引的图片  
[segmentedControl setImage:[UIImage imageNamed:@"home.png"] forSegmentAtIndex:2];  
//在指定索引插入一个选项并设置图片  
[segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"more.png"] atIndex:2 animated:NO];  
//在指定索引插入一个选项并设置题目  
[segmentedControl insertSegmentWithTitle:@"new" atIndex:3 animated:NO];  
//移除指定索引的选项  
[segmentedControl removeSegmentAtIndex:0 animated:NO];  
//设置指定索引选项的宽度  
[segmentedControl setWidth:60.0 forSegmentAtIndex:2];  
//设置选项中图片等的左上角的位置  
//[segmentedControl setContentOffset:CGSizeMake(10.0,10.0) forSegmentAtIndex:1];  

//设置默认选择项索引  
segmentedControl.selectedSegmentIndex = 2;  
//分段控件的颜色,只有样式为UISegmentedControlStyleBar的时候才有效果  
segmentedControl.tintColor = [UIColor redColor];  
//设置样式  
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;  
//设置在点击后是否恢复原样  
segmentedControl.momentary = NO;  
//设置指定索引选项不可选  
[segmentedControl setEnabled:NO forSegmentAtIndex:3];  
//判断指定索引选项是否可选  
BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:3];  
NSLog(@"%d",enableFlag);  

3.分段控件点击事件:
segmentedControl addTarget:self  
                     action:@selector(segmentAction:)  
           forControlEvents:UIControlEventValueChanged];  

4.响应的事件:
    -(void)segmentAction:(UISegmentedControl *)Seg  
    {  
        NSInteger index = Seg.selectedSegmentIndex;  
        switch (index) {  
            case 0:  
                NSLog(@"0 clicked.");  
                break;  
            case 1:  
                NSLog(@"1 clicked.");  
                break;  
            case 2:  
                NSLog(@"2 clicked.");  
                break;  
            case 3:  
                NSLog(@"3 clicked.");  
                break;  
            case 4:  
                NSLog(@"4 clicked.");  
                break;  
            default:  
                break;  
        }  
    } 


    //获取指定索引选项的图片imageForSegmentAtIndex:  
    UIImageView *imageForSegmentAtIndex = [[UIImageView alloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]];  
    imageForSegmentAtIndex.frame = CGRectMake(60.0, 100.0, 30.0, 30.0);  

    //获取指定索引选项的标题titleForSegmentAtIndex  
    UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 100.0, 30.0, 30.0)];  
    titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];  

    //获取总选项数segmentedControl.numberOfSegments  
    UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0, 100.0, 30.0, 30.0)];  
    numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedControl.numberOfSegments];  

    //获取指定索引选项的宽度widthForSegmentAtIndex:  
    UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 100.0, 70.0, 30.0)];  
    widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f",[segmentedControl widthForSegmentAtIndex:2]];  


//IOS5以后,可以全局的设置一些控件的外观,分段控件就是其中一个(全局设置UISegmentedControl外观):

    //cap insets用来指定哪些区域是固定不变的,未制定的区域则会repeat    

    UIImage *segmentSelected = [[UIImage imageNamed:@"bg_o.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)];    

    UIImage *segmentUnselected = [[UIImage imageNamed:@"bg.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)];    

    UIImage *segmentSelectedUnselected = [UIImage imageNamed:@"line.png"] ;    

    UIImage *segUnselectedSelected = [UIImage imageNamed:@"line.png"] ;    

    UIImage *segmentUnselectedUnselected = [UIImage imageNamed:@"line.png"];    

    //Segmente未选中背景    
    [[UISegmentedControl appearance] setBackgroundImage:segmentUnselected    
                                               forState:UIControlStateNormal    
                                             barMetrics:UIBarMetricsDefault];    

    //Segmente选中背景    
    [[UISegmentedControl appearance] setBackgroundImage:segmentSelected    
                                               forState:UIControlStateSelected    
                                             barMetrics:UIBarMetricsDefault];    

    //Segmente左右都未选中时的分割线    
    //BarMetrics表示navigation bar的状态,UIBarMetricsDefault 表示portrait状态(44pixel height),UIBarMetricsLandscapePhone 表示landscape状态(32pixel height)    

    [[UISegmentedControl appearance] setDividerImage:segmentUnselectedUnselected    
                                 forLeftSegmentState:UIControlStateNormal    
                                   rightSegmentState:UIControlStateNormal    
                                          barMetrics:UIBarMetricsDefault];    

    [[UISegmentedControl appearance] setDividerImage:segmentSelectedUnselected    
                                 forLeftSegmentState:UIControlStateSelected    
                                   rightSegmentState:UIControlStateNormal    
                                          barMetrics:UIBarMetricsDefault];    

    [[UISegmentedControl appearance] setDividerImage:segUnselectedSelected    
                                 forLeftSegmentState:UIControlStateNormal    
                                   rightSegmentState:UIControlStateSelected    
                                          barMetrics:UIBarMetricsDefault];    

    //字体    
    NSDictionary *textAttibutesUnSelected = [NSDictionary dictionaryWithObjectsAndKeys:    
                                   [UIFont systemFontOfSize:18],UITextAttributeFont,    
                                   [UIColor blackColor],UITextAttributeTextColor,    
                                   [UIColor whiteColor],UITextAttributeTextShadowColor,    
                                   [NSValue valueWithCGSize:CGSizeMake(1, 1)],UITextAttributeTextShadowOffset,nil];    

    NSDictionary *textAttibutesSelected = [NSDictionary dictionaryWithObjectsAndKeys:    
                                             [UIFont systemFontOfSize:18],UITextAttributeFont,    
                                             [UIColor whiteColor],UITextAttributeTextColor,    
                                             [UIColor whiteColor],UITextAttributeTextShadowColor,    
                                             [NSValue valueWithCGSize:CGSizeMake(0, 0)],UITextAttributeTextShadowOffset,nil];    

    [[UISegmentedControl appearance] setTitleTextAttributes:textAttibutesUnSelected    
                                                   forState:UIControlStateNormal];    

    [[UISegmentedControl appearance] setTitleTextAttributes:textAttibutesSelected    
                                                   forState:UIControlStateSelected];   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值