如何以编程方式切换UIsegmentedControll?

如何以编程方式切换UIsegmentedControll?

selectedSegmentIndex属性标识UISegmentedControl的选定段。 将此属性设置为任何有效的段索引或UISegmentedControlNoSegment (-1)以closures当前select。

// select the first segment segmented.selectedSegmentIndex = 0; // turn off the current selection segmented.selectedSegmentIndex = UISegmentedControlNoSegment; 

或者,例如,在更改了selectedSegmentIndex调用“sendActionsForControlEvents:”之后

 segmentedControl.selectedSegmentIndex = 0 [segmentedControl sendActionsForControlEvents:UIControlEventValueChanged]; 

@jmstone response,true,这个动作不会调用这个控件的valueChanged事件。

解决这个问题的一个方法就是自己调用函数:

 segmentedControl.selectedSegmentIndex = 3; [self valueChangedMethod:segmentedControl]; 

这将叫:

 - (void)valueChangedMethod:(UISegmentedControl *)segmentedControl { //continue your code here... } 

在Swift中:

 segmentedControl.selectedSegmentIndex = 1 

Swift 2:

 segmentedControl.sendActionsForControlEvents(UIControlEvents.ValueChanged) 

Swift 3:

 segmentedControl.sendActions(for: UIControlEvents.valueChanged) 

我有一个类似的问题,分段控制没有改变。 我过早调用“selectedSegmentIndex”等。 一旦我调用“viewDidLoad”之后调用它,那么一切都很好。