UISegmentController

本文详细介绍了UISegmentedControl的基本用法与高级特性,包括初始化、设置标题与宽度、响应事件等,并提供了实用的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

使用注意事项:

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

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

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

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

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


基本属性

// 1.1 实例化
       NSArray *items = @[@"商品****详情", @"商品规格", @"售后服务"];
       UISegmentedControl *segmentController = [[UISegmentedControl alloc] initWithItems:items];
// 1.2 添加到父视图
       [self.view addSubview:segmentController];
// 1.3 设置原点坐标及大小
       segmentController.frame = CGRectMake(10.0, 50.0, (CGRectGetWidth(self.view.bounds) - 10 * 2), 40.0);

(1)初始化后,按钮状态,默认无选中



(2)选中时的背景及边框颜色默认为蓝色



其他属性

// 2.1 按钮个数
       NSInteger number = segmentController.numberOfSegments;
       NSLog(@"number = %ld",number);
// 2.2 自适应标题宽度,默认为NO
       segmentController.apportionsSegmentWidthsByContent = NO;
// 2.3 当前选中的按钮,默认无选中按钮
       segmentController.selectedSegmentIndex = 0;<span style="color:#ffffff;">
</span>

(2.3)设置选中第一个按钮



// 2.4 设置边框及按钮选中状态的颜色
       segmentController.tintColor = [UIColor redColor];

(2.4)设置按钮及边框选中状态颜色为红色



// 2.5 设置某个按钮的标题,设置后图标无效
       [segmentController setTitle:@"京东商城的商品" forSegmentAtIndex:0];

(2.5)设置第一个按钮标题


// 2.6 获取按钮标题
       NSString *title = [segmentController titleForSegmentAtIndex:0];
       NSLog(@"title = %@",title);

// 2.7 设置某个按钮的宽度
       [segmentController setWidth:50.0 forSegmentAtIndex:0];


(2.7)设置了第一个按钮的宽度


// 2.8 获取某个按钮的宽度
       CGFloat width = [segmentController widthForSegmentAtIndex:1];
       NSLog(@"width = %@",@(width));

// 2.9 设置某个按钮是否可点击,默认为YES,即可点击
       [segmentController setEnabled:NO forSegmentAtIndex:0];

(2.9)设置了第一个按钮不可点击



// 3.0 获取某个按钮是否可点击
       BOOL isEnable = [segmentController isEnabledForSegmentAtIndex:0];
       NSLog(@"isEnable = %@",@(isEnable));

添加响应方法


1  定义

  <span style="font-family: Menlo;">  [segmentController addTarget:self action:@selector(segmentControllerAction:) forControlEvents:UIControlEventValueChanged];</span>


2 响应方法


- (void)segmentControllerAction:(UISegmentedControl *)segment
{
    // 获取当前被点击的按钮索引
    NSInteger index = segment.selectedSegmentIndex;


2.1 方法1

    NSLog(@"点击了第 %@ 个按钮",@(index));
    if (0 == index)
    {
        NSLog(@"点击了 京东商城的商品");
    }
    else if (1 == index)
    {
        NSLog(@"点击了 商品规格");
    }


2.2 方法2 


    NSString *title = [segment titleForSegmentAtIndex:index];
    if ([title isEqualToString:@"京东商城的商品"])
    {
        NSLog(@"点击了 京东商城的商品");
    }
    else if ([title isEqualToString:@"商品规格"])
    {
        NSLog(@"点击了 商品规格");
    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值