美文网首页移动开发技术前沿
UISegmentedControl简单使用

UISegmentedControl简单使用

作者: 小黄人写代码 | 来源:发表于2015-06-23 22:31 被阅读3411次
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        NSArray *segmentArray = @[
                                  @"1",
                                  @"2",
                                  @"3",
                                  @"4"
                                  ];
        
        // 初始化UISegmentedControl
        UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:segmentArray];
        segmentControl.frame = CGRectMake(0, 0, self.view.frame.size.width - 20, 30);
        segmentControl.center = self.view.center;
        
        // 设置默认选择项索引
        segmentControl.selectedSegmentIndex = 2;
        segmentControl.tintColor = [UIColor redColor];
        
        // 设置在点击后是否恢复原样
        segmentControl.momentary = YES;
        
        // 设置指定索引的题目
        [segmentControl setTitle:@"two" forSegmentAtIndex:1];
        
        // 设置指定索引的图片
        [segmentControl setImage:[UIImage imageNamed:@"little_animal_02"] forSegmentAtIndex:3];
        
        // 在指定索引插入一个选项并设置图片
        [segmentControl insertSegmentWithImage:[UIImage imageNamed:@"little_animal_03"] atIndex:2 animated:NO];
        
        // 在指定索引插入一个选项并设置题目
        [segmentControl insertSegmentWithTitle:@"insert" atIndex:3 animated:NO];
        
        // 移除指定索引的选项
        [segmentControl removeSegmentAtIndex:0 animated:YES];
        
        // 设置指定索引选项的宽度
        [segmentControl setWidth:70.0 forSegmentAtIndex:2];
    
        // 设置选项中图片等的左上角的位置
        [segmentControl setContentOffset:CGSizeMake(10.0, 10.0) forSegmentAtIndex:4];
    
        // 获取指定索引选项的图片imageForSegmentAtIndex
        UIImageView *imageForSegmentAtIndex = [[UIImageView alloc] initWithImage:[segmentControl imageForSegmentAtIndex:1]];
        imageForSegmentAtIndex.frame = CGRectMake(60.0, 120.0, 30.0, 30.0);  ;
    
        // 获取指定索引选项的标题titleForSegmentAtIndex
        UILabel *titleForSegmentAtIndex = [[UILabel alloc] initWithFrame:CGRectMake(100.0, 160.0, 30.0, 30.0)];
        titleForSegmentAtIndex.text = [segmentControl titleForSegmentAtIndex:0];
        
        // 获取总选项数segmentedControl.numberOfSegments
        UILabel *numberOfSegments = [[UILabel alloc] initWithFrame:CGRectMake(140.0, 170.0, 30.0, 30.0)];
        numberOfSegments.text = [NSString stringWithFormat:@"%ld", segmentControl.numberOfSegments];
    
        // 获取指定索引选项的宽度widthForSegmentAtIndex
        UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 210.0, 70.0, 30.0)];
        widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f", [segmentControl widthForSegmentAtIndex:2]];
    
        // 设置指定索引选项不可选
        [segmentControl setEnabled:NO forSegmentAtIndex:4];
        
        // 判断指定索引选项是否可选
        BOOL enableFlag = [segmentControl isEnabledForSegmentAtIndex:4];
        NSLog(@"%d", enableFlag);
        
        // 添加监听
        [segmentControl addTarget:self action:@selector(didClickSegmentedControlAction:)forControlEvents:UIControlEventValueChanged];
        
        [self.view addSubview:segmentControl];
    }
    
    /**
     *  监听点击了哪项
     */
    - (void)didClickSegmentedControlAction:(UISegmentedControl *)segmentControl
    {
        NSInteger idx = segmentControl.selectedSegmentIndex;
        
        NSLog(@"%ld", idx);
    }
    

    相关文章

      网友评论

        本文标题:UISegmentedControl简单使用

        本文链接:https://www.haomeiwen.com/subject/rnxeqttx.html