iOS-选择控件 UISegmentedControl

    //创建两个选项的字符串数组

   NSArray *items = [NSArrayarrayWithObjects:@"Black",@"White",nil];

    

    //NSArray为参数的初始化选择控件

    UISegmentedControl *segment = [[[UISegmentedControlalloc]initWithItems:items]autorelease];

    //设置左侧选项第一项默认为选择状态

    segment.selectedSegmentIndex =0;

    //设置选择控件的位置

    segment.frame =CGRectMake(0,0,130, 30);

    //注册选项被选择时调用方法

    [segment addTarget:selfaction:@selector(segmentDidChange:)forControlEvents:UIControlEventValueChanged];

    //将选择控件追加到导航条的右侧

   UIBarButtonItem *button = [[UIBarButtonItemalloc]initWithCustomView:segment];

    self.navigationItem.rightBarButtonItem = button;


//选项被选择后发生变化时调用此方法

-(void)segmentDidChange:(id)sender

{

   if ([senderisKindOfClass:[UISegmentedControlclass]]) {

       UISegmentedControl *segment = sender;

       if (0 == segment.selectedSegmentIndex) {

            //第一个选项被选择后将画面背景设置成黑色

            self.view.backgroundColor = [UIColorblackColor];

        }else{

            //第二个选项被选择后将画面背景设置成白色

            self.view.backgroundColor = [UIColorwhiteColor];

        }

    }

}


_______________________________________________________________________________________



选择控件的种类


//设置选择控件的种类

    segment.segmentedControlStyle  =UISegmentedControlStyleBar;



typedef enum {

    UISegmentedControlStylePlain,     // large plain

    UISegmentedControlStyleBordered,  // large bordered

    UISegmentedControlStyleBar,       // small button/nav bar style. tintable

    UISegmentedControlStyleBezeled,   // DEPRECATED. Do not use this style.

} UISegmentedControlStyle;



//momentary = YES 时不显示选择状态

    segment.momentary = YES;


//选择控件的颜色更改,只有segmentedControlStyle  = UISegmentedControlStyleBar才有效

    segment.tintColor = [UIColorblackColor];

//在.h文件中声明images,titles 为NSArray 类型

//读入图标图片

  UIImage* image1 = [UIImage imageNamed:@"1.png"];

  UIImage* image2 = [UIImage imageNamed:@"2.png"];

  UIImage* image3 = [UIImage imageNamed:@"3.png"];

  //创建选项显示用的图标、文本标题的NSArray类型数组

  images = [[NSArray alloc] initWithObjects:image1, image2, image3,nil];

  titles = [[NSArray alloc] initWithObjects:@"1",@"2", @"3",nil];

  //选项初期为文本型

  UISegmentedControl* segment =

    [[[UISegmentedControl alloc] initWithItems:titles_] autorelease];

  segment.segmentedControlStyle = UISegmentedControlStyleBordered;

  segment.frame = CGRectMake(10, 50, 300, 30 );

  [segment addTarget:self

              action:@selector(segmentDidChange:)

       forControlEvents:UIControlEventValueChanged];


  [self.view addSubview:segment];

}

//选项被选中后,将其中的文本型标题换成图标

- (void)segmentDidChange:(id)sender {

 if ( [sender isKindOfClass:[UISegmentedControl class]] ) {

    UISegmentedControl* segment = sender;

   for ( int i =0; i < segment.numberOfSegments; ++i ){

     if ( i == segment.selectedSegmentIndex ) {

        [segment setImage:[images_ objectAtIndex:i] forSegmentAtIndex:i];

      }else {

        [segment setTitle:[titles_ objectAtIndex:i] forSegmentAtIndex:i];

      }

    }

  } 

}


 //修改选项内容的显示位置

  [segment setContentOffset:CGSizeMake(0, -7 ) forSegmentAtIndex:0];

  [segment setContentOffset:CGSizeMake(07 ) forSegmentAtIndex:2];

 //设置选项的非活性

  [segment setEnabled:NO forSegmentAtIndex:1];



//选项的插入和删除

//单击"Insert"按钮后追加选项,单击"Remove"按钮后会删除最后一个选项,单击"RemoveALL"按钮后删除所有按钮

//初始化选择控件

  segment_ = [[UISegmentedControl alloc] init];

  segment_.segmentedControlStyle = UISegmentedControlStyleBordered;

  segment_.frame = CGRectMake(10, 50, 300, 30 );

  [self.view addSubview:segment_];

  //向其中追加三个选项

  [segment_ insertSegmentWithTitle:@"3" atIndex:0 animated:NO];

  [segment_ insertSegmentWithTitle:@"2" atIndex:0 animated:NO];

  [segment_ insertSegmentWithTitle:@"1" atIndex:0 animated:NO];

  //在工具条上追加InsertRemoveRemoveAll三个按钮,并注册三个按钮的响应方法

  UIBarButtonItem* insertButton =

    [[[UIBarButtonItem alloc] initWithTitle:@"Insert"

                                      style:UIBarButtonItemStyleBordered

                                     target:self

                                     action:@selector(insertDidPush)] autorelease];

  UIBarButtonItem* removeButton =

    [[[UIBarButtonItem alloc] initWithTitle:@"Remove"

                                      style:UIBarButtonItemStyleBordered

                                     target:self

                                     action:@selector(removeDidPush)] autorelease];

  UIBarButtonItem* removeAllButton =

    [[[UIBarButtonItem alloc] initWithTitle:@"RemoveAll"

                                      style:UIBarButtonItemStyleBordered

                                     target:self

                                     action:@selector(removeAllDidPush)] autorelease];

  NSArray* items = [NSArray arrayWithObjects:insertButton, removeButton, removeAllButton,nil];

  [self setToolbarItems:items animated:YES];

}

//Insert按钮的响应方法

- (void)insertDidPush {

  NSNumber* number = [NSNumber numberWithInteger:segment_.numberOfSegments +1];

  [segment_ insertSegmentWithTitle:[number stringValue]

                           atIndex:[number integerValue]

                          animated:YES];

}

//Remove按钮的响应方法

- (void)removeDidPush {

  [segment_ removeSegmentAtIndex:segment_.numberOfSegments -1 animated:YES];

}

//RemoveAll按钮的响应方法

- (void)removeAllDidPush {

  [segment_ removeAllSegments];

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值