UISegmentedControl的使用

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

使用注意事项:

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

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

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

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

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


// 实始化
NSArray *items = @[@"商品*************详情", @"商品规格", @"售后服务"];
UISegmentedControl *segmentController = [[UISegmentedControl alloc] initWithItems:items];
// 添加到父视图
[self.view addSubview:segmentController];
// 设置frame
segmentController.frame = CGRectMake(10.0, 50.0, (CGRectGetWidth(self.view.bounds) - 10.0 * 2), 40.0);

// 其他属性
// 按钮个数
NSInteger number = segmentController.numberOfSegments;
NSLog(@"number = %ld", number);
// 自适应标题宽度,默认为NO
segmentController.apportionsSegmentWidthsByContent = YES;
// 当前选中的按钮,默认无选中按钮
segmentController.selectedSegmentIndex = 1;
// 设置边框及按钮选中状态的颜色
segmentController.tintColor = [UIColor redColor];
// 设置某个按钮的标题,设置后图标无效
[segmentController setTitle:@"京东商城的商品" forSegmentAtIndex:0];
// 获取按钮标题
NSString *title = [segmentController titleForSegmentAtIndex:0];
NSLog(@"title = %@", title);
// 设置某个按钮的宽度
[segmentController setWidth:100.0 forSegmentAtIndex:2];
// 获取某个按钮的宽度
CGFloat width = [segmentController widthForSegmentAtIndex:1];
NSLog(@"width = %@", @(width));
// 设置某个按钮是否可点击,默认为YES,即可点击
[segmentController setEnabled:NO forSegmentAtIndex:2];
// 获取某个按钮是否可点击
BOOL isEnable = [segmentController isEnabledForSegmentAtIndex:0];
NSLog(@"isEnable = %@", @(isEnable));


// 添加响应方法
[segmentController addTarget:self action:@selector(segmentControllerAction:) forControlEvents:UIControlEventValueChanged];

// 响应方法
- (void)segmentControllerAction:(UISegmentedControl *)segment
{
    // 获取当前被点击的按钮索引
    NSInteger index = segment.selectedSegmentIndex;
    
    // 方法1
//    NSLog(@"点击了第 %@ 个按钮", @(index));
//    if (0 == index)
//    {
//        NSLog(@"点击了 京东商城的商品");
//    }
//    else if (1 == index)
//    {
//        NSLog(@"点击了 商品规格");
//    }
    
    // 方法2
    NSString *title = [segment titleForSegmentAtIndex:index];
    if ([title isEqualToString:@"京东商城的商品"])
    {
        NSLog(@"点击了 京东商城的商品");
    }
    else if ([title isEqualToString:@"商品规格"])
    {
        NSLog(@"点击了 商品规格");
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值