我想向 UIsegmentedControl 添加 3 个分段,当我点击第三个分段时,它应该删除第一个分段,并在删除后保留对第二个分段的选择 这是代码
(void)viewDidLoad {
[super viewDidLoad];
//Create label
label = [[UILabel alloc] init];
label.frame = CGRectMake(10, 10, 300, 40);
label.textAlignment = UITextAlignmentCenter;
[self.view addSubview:label];
//Create the segmented control
NSArray *itemArray = [NSArray arrayWithObjects: @"One", @"Two", @"Three", nil];
segmentedControl= [[UISegmentedControl alloc] initWithItems:itemArray];
segmentedControl.frame = CGRectMake(35, 200, 250, 50);
segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;
segmentedControl.selectedSegmentIndex = 1;
[segmentedControl addTarget:self
action:@selector(pickOne:)
forControlEvents:UIControlEventValueChanged];
[self.view addSubview:segmentedControl];
}
//Action method executes when user touches the button
-(IBAction)pickOne:(id)sender{
label.text = [segmentedControl titleForSegmentAtIndex: [segmentedControl selectedSegmentIndex]];
[segmentedControl removeSegmentAtIndex:0
animated:YES];
segmentedControl.selectedSegmentIndex=1;
最佳答案
不清楚你在问什么。您想要从分段控件中删除段并让控件保留当前选定的段?
我猜分段控件只是在您删除一个分段时取消选择所有分段。
如果您想保留当前选择的片段,您可能必须编写自定义逻辑才能这样做。像这样:
获取当前选中的段。
如果它等于您要删除的索引,则取消选择所有段(因为当前选择将不再存在。)
如果当前选择的段索引 < 您要删除的段索引,删除段后重新选择相同的段索引
如果当前选定的索引 > 您要删除的索引,则在删除一个段后将选定的段索引设置为比之前的值小 1(因为删除的段之后的所有段都将向下移动 1。)
关于ios - UISegmentedControl 在删除段时删除当前选定的段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23445925/