【问题标题】:UISegmentedControl removing current selected segment when remove segmentsUISegmentedControl 删除段时删除当前选定的段
【发布时间】:2014-05-03 14:48:45
【问题描述】:

我想向 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;

}

【问题讨论】:

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


    【解决方案1】:

    不清楚你在问什么。您想从分段控件中删除分段并让控件保留当前选定的分段吗?

    我猜分段控件只是在您删除一个段时取消选择所有段。

    如果您想保留当前选定的细分,您可能需要编写自定义逻辑来执行此操作。像这样的:

    1. 获取当前选中的段。

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

    3. 如果当前选择的段索引

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

    【讨论】:

      猜你喜欢
      • 2019-03-17
      • 1970-01-01
      • 2012-02-25
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      相关资源
      最近更新 更多