如何以编程方式切换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”之后调用它,那么一切都很好。