UISegmentedControl的使用

UISegmentedControl按钮视图控制器,功能类似于UIButton

使用注意事项:

1、初始化时,必须通过设置其按钮标题数组进行初始化

2、初始化后,按钮均是未被选中状态,可设置任一个按钮为选中状态;默认选中后不可再次点击

3、标题和图标只能二选一,不能同时设置

4、按钮的索引坐标是从0~N开始计算取值的

5、按钮响应方法通过识别值的变化进行响应,即 UIControlEventValueChanged


[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 实始化  
  2. NSArray *items = @[@"商品*************详情"@"商品规格"@"售后服务"];  
  3. UISegmentedControl *segmentController = [[UISegmentedControl alloc] initWithItems:items];  
  4. // 添加到父视图  
  5. [self.view addSubview:segmentController];  
  6. // 设置frame  
  7. segmentController.frame = CGRectMake(10.050.0, (CGRectGetWidth(self.view.bounds) - 10.0 * 2), 40.0);  

[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 其他属性  
  2. // 按钮个数  
  3. NSInteger number = segmentController.numberOfSegments;  
  4. NSLog(@"number = %ld", number);  
  5. // 自适应标题宽度,默认为NO  
  6. segmentController.apportionsSegmentWidthsByContent = YES;  
  7. // 当前选中的按钮,默认无选中按钮  
  8. segmentController.selectedSegmentIndex = 1;  
  9. // 设置边框及按钮选中状态的颜色  
  10. segmentController.tintColor = [UIColor redColor];  
  11. // 设置某个按钮的标题,设置后图标无效  
  12. [segmentController setTitle:@"京东商城的商品" forSegmentAtIndex:0];  
  13. // 获取按钮标题  
  14. NSString *title = [segmentController titleForSegmentAtIndex:0];  
  15. NSLog(@"title = %@", title);  
  16. // 设置某个按钮的宽度  
  17. [segmentController setWidth:100.0 forSegmentAtIndex:2];  
  18. // 获取某个按钮的宽度  
  19. CGFloat width = [segmentController widthForSegmentAtIndex:1];  
  20. NSLog(@"width = %@", @(width));  
  21. // 设置某个按钮是否可点击,默认为YES,即可点击  
  22. [segmentController setEnabled:NO forSegmentAtIndex:2];  
  23. // 获取某个按钮是否可点击  
  24. BOOL isEnable = [segmentController isEnabledForSegmentAtIndex:0];  
  25. NSLog(@"isEnable = %@", @(isEnable));  


[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 添加响应方法  
  2. [segmentController addTarget:self action:@selector(segmentControllerAction:) forControlEvents:UIControlEventValueChanged];  

[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. // 响应方法  
  2. - (void)segmentControllerAction:(UISegmentedControl *)segment  
  3. {  
  4.     // 获取当前被点击的按钮索引  
  5.     NSInteger index = segment.selectedSegmentIndex;  
  6.       
  7.     // 方法1  
  8. //    NSLog(@"点击了第 %@ 个按钮", @(index));  
  9. //    if (0 == index)  
  10. //    {  
  11. //        NSLog(@"点击了 京东商城的商品");  
  12. //    }  
  13. //    else if (1 == index)  
  14. //    {  
  15. //        NSLog(@"点击了 商品规格");  
  16. //    }  
  17.       
  18.     // 方法2  
  19.     NSString *title = [segment titleForSegmentAtIndex:index];  
  20.     if ([title isEqualToString:@"京东商城的商品"])  
  21.     {  
  22.         NSLog(@"点击了 京东商城的商品");  
  23.     }  
  24.     else if ([title isEqualToString:@"商品规格"])  
  25.     {  
  26.         NSLog(@"点击了 商品规格");  
  27.     }  
  28. }  



0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可自定义样式、功能全面的分段控件。项目地址:https://github.com/klongmitre/android-segmented-control-view效果图:如何使用xml中直接创建<org.mitre.ascv.AndroidSegmentedControlView         android:id="@ id/androidSegmentedControlView"         android:layout_width="match_parent"         android:layout_height="wrap_content"         ascv:ascv_defaultSelection="0"         ascv:ascv_unselectedTextColor="@color/test_attr_unselected_text_color"         ascv:ascv_selectedTextColor="@color/test_attr_selected_text_color"         ascv:ascv_selectedColor="@color/test_attr_selected_color"         ascv:ascv_unselectedColor="@color/test_attr_unselected_color"         ascv:ascv_items="@array/three_state_option"/>2. java中添加监听器,监听item的切换ascv = (AndroidSegmentedControlView)this.findViewById(R.id.androidSegmentedControlView); ascv.setIdentifier("ascv01"); //ascv.setItems(new String[]{"Test1aaaaa", "Test2", "Test3"}, new String[]{"1", "2", "3"}); ascv.setOnSelectionChangedListener(new OnSelectionChangedListener(){     @Override     public void newSelection(String identifier, String value) {//当item切换时触发  Toast.makeText(MainActivity.this, "identifier:" identifier "  value:" value, Toast.LENGTH_SHORT).show();     } });参数identifier是当有多个分段控件时,同时使用一个监听器时,用于区别是哪个触发了事件。属性说明属性名类型使用说明ascv_unselectedTextColorreference未选中的item的文字颜色ascv_unselectedColorreference未选中的item的背景颜色,不包括边框ascv_selectedColorreference选中的item背景的颜色以及边框的颜色ascv_selectedTextColorreference选中的item的文字颜色ascv_itemsreference控件item上显示的文字ascv_valuesreference控件item的值,会被传给监听器。未设置时,默认使用ascv_items。ascv_equalWidthboolean当item上的文字,即ascv_items设置的文字,长度不一致时,item的宽度是否还等长。ascv_stretchboolean是否被拉伸。即控件是否填充整个父容器。ascv_defaultSelectioninteger默认哪个item被选中,下标从0开始ascv_identifierstring控件的ID

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值