• UI: UISegmentedControl 做简单选项分组及其自定义


    问题:

    想显示给用户一些简洁、易理解的选项,用户可以选择其中的一项。 
    先创建一个 UISegmentedControl 实例来初始化一个该控件 :
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        self.view.backgroundColor = [UIColor whiteColor];
        NSArray *segments = [[NSArray alloc]initWithObjects:
                             @"iPhone",
                             @"iPad",
                             @"iPod",
                             @"iMac", nil];
        
     _mySegmentControl = [[UISegmentedControl alloc]initWithItems:segments];
        _mySegmentControl.center = self.view.center;
        
        [self.view addSubview:_mySegmentControl];
    }
    现在的问题是我们怎么知道用户选中了一个选项呢?答案很简单。就像 UISwitch 和 UISlider 一样,用 addTarget:action:forControlEvents:方法来添加一个 target. 需要给参数 forControlEvents 传 UIControlEventValueChanged 值因为当用户选择了一个控件中的选项时, 正是这个参数触发了事件。 
    [_mySegmentControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
    //segment选项变化时调用方法
    - (void)segmentChanged:(UISegmentedControl *)paramSender{
        if ([paramSender isEqual:_mySegmentControl]) {
            NSInteger selectedSegmentIndex = [paramSender selectedSegmentIndex];
            NSString *selectedSegmentText = [paramSender titleForSegmentAtIndex:selectedSegmentIndex];
            NSLog(@"Segment %ld with %@ text is selected", (long)selectedSegmentIndex,selectedSegmentText);
        }
    }
    如果你想要用户在选中一个选项之后,该选项马上变回原始状态(就像没有 被选中一样),需要将 momentary 属性设置为 YES。 
    _mySegmentControl.momentary = YES;
    分段控件的一个非常灵活的特性是它可以显示图片。想要显示图片的话,使用 initWithObjects:初始化方法同时传递图片、字符、图片作为参数。 
    NSArray *segments = [[NSArray alloc] initWithObjects: @"iPhone",
    [UIImage imageNamed:@"iPad.png"],
    @"iPod",
    @"iMac", nil];
    self.mySegmentedControl = [[UISegmentedControl alloc] initWithItems:segments];
  • 相关阅读:
    减治算法之寻找第K小元素问题
    OpenGL的版本号历史和发展
    动态注冊监听
    Thinking in Java -- 类型信息RTTI
    Unity3D
    Oracle改动字段类型
    函数定义
    foreach
    数组
    结构体
  • 原文地址:https://www.cnblogs.com/safiri/p/4015744.html
Copyright © 2020-2023  润新知