【问题标题】:How to disable part of UISegmentedControl?如何禁用部分 UISegmentedControl?
【发布时间】:2011-09-15 09:44:05
【问题描述】:

以下是UISegmentedControl的代码

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects: [UIImage imageNamed:@"down.png"], [UIImage imageNamed:@"dList.png"], nil]];  

[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];  
segmentedControl.frame = CGRectMake(0, 0, 90, 65);  
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;  
segmentedControl.momentary = YES;  

UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];  

[segmentedControl release];  

self.navigationItem.rightBarButtonItem = segmentBarItem;  

[segmentBarItem release];    

- (void)segmentAction:(id)sender{
    if([sender selectedSegmentIndex] == 0)
    {
        button.hidden=NO;
    }
    else
    {
        [self dListMethod ];
    }
}

在 if() 部分我想禁用selectedSegmentIndex==0 并在button.hidden=YES 时启用

【问题讨论】:

  • 如果button.hidden = NO 不希望执行if([sender selectedSegmentIndex] == 0) 行?

标签: iphone ios uisegmentedcontrol


【解决方案1】:

使用setEnabled:forSegmentAtIndex: 方法启用和禁用段。

[segmentedControl setEnabled:NO forSegmentAtIndex:0];

如果你想禁用第一段。

【讨论】:

    【解决方案2】:

    对于那些可能对 swift 命令感兴趣的人:

    斯威夫特 2.3

    segmentedControl.setEnabled(false , forSegmentAtIndex: 0);
    

    斯威夫特 3

    self.segmentedControl.setEnabled(false, forSegmentAt: 0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多