我是STAControls的维护者,该类继承了各种UIControl
s,其中一个是UISegmentedControl
。在该项目的示例应用程序中,我具有以下代码(可以从上述链接下载):
- (void)textFieldDidEndEditing:(UITextField *)textField { NSInteger integer = [textField.text integerValue]; if (integer <0 || integer >= self.segmentedControl.numberOfSegments) { this doesn't work self.segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment; } else { // this works self.segmentedControl.selectedSegmentIndex = integer; } }
在iOS 13中,UISegmentedControlNoSegment
不遵循分配:
在iOS 12和iOS的早期版本中,此功能可以正常运行:
有关如何解决此问题的任何想法?
其他答案中给出的解决方案被夸大了。有一个更简单的解决方法:只需调用setNeedsLayout
分段控件即可。
self.seg.selectedSegmentIndex = UISegmentedControl.noSegment self.seg.setNeedsLayout()