ios - UISegmentedControl 在删除段时删除当前选定的段

标签 ios objective-c cocoa-touch cocos2d-iphone uisegmentedcontrol

我想向 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. 获取当前选中的段。

  2. 如果它等于您要删除的索引,则取消选择所有段(因为当前选择将不再存在。)

  3. 如果当前选择的段索引 < 您要删除的段索引,删除段后重新选择相同的段索引

  4. 如果当前选定的索引 > 您要删除的索引,则在删除一个段后将选定的段索引设置为比之前的值小 1(因为删除的段之后的所有段都将向下移动 1。)

关于ios - UISegmentedControl 在删除段时删除当前选定的段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23445925/

相关文章:

objective-c - 将 WEAK 设置为非 @property 变量

objective-c - 我们可以覆盖 Objective-C 中的 alloc 和 dealloc 吗?

iphone - 仅在为模拟器构建时复制符号

ios - 使用obj-c的UINavigationController居中按钮

ios - 我希望我的 UILabel 遵循我的 UISlider 值

ios - 如何让 Xcode 6 生成的 XLIFF 文件导入回 Xcode - 重命名是不够的

ios - 如何使用 RestKit 将源 JSON 映射到结构不同的模型?

objective-c - 子类化或不子类化,UITabBarController

iphone - 使用重叠 View 时不获取触摸事件

objective-c - 通过代码调节屏幕亮度