如何以编程方式为UISegmentedControl中的段设置所选状态

时间:2014-05-03 23:06:25

标签: ios ios7 uisegmentedcontrol

我的UISegmentedControl中有四个段。我试图以编程方式设置第三个和第四个段的选定状态如果用户选择了第一个段

示例:在给定的分段控件中,如果用户选择了段A,则应选择C,D。

我查看了Apple的方法,但没有找到符合我要求的方法。我正在寻找一种看起来像 -

的方法

非常感谢任何帮助。


- (void)setSelected :( BOOL)被选为forSegmentAtIndex:(NSUInteger)段

参数

启用

是选择指定的分段,或选择否以取消选择分段。默认情况下,未选择分段。

片段

标识控件中段的索引号。它必须是介于0和段数(numberOfSegments)减1之间的数字;超出此上限的值固定在它上面。


7 个答案:

答案 0 :(得分:11)

Swift 4.0

segmentedControl.selectedSegmentIndex = index

答案 1 :(得分:6)

像这样使用setSelectedSegmentIndex -

[mySegmentControl setSelectedSegmentIndex:index]

答案 2 :(得分:4)

此代码适用于swift 2.0

// Declare outlet for our segmented control
@IBOutlet weak var segmentcontroll: UISegmentedControl!

// Declare our IBAction for the segmented control
@IBAction func segmentneeded(sender: AnyObject) {

    // Here we test for the presently selected segment
    switch segmentcontroll.selectedSegmentIndex {
    case 0:
        self.view.backgroundColor=UIColor.purpleColor()
        segmentcontroll.selectedSegmentIndex=UISegmentedControlNoSegment
    case 1:
        self.view.backgroundColor=UIColor.yellowColor()
        segmentcontroll.selectedSegmentIndex=UISegmentedControlNoSegment
    default:
        self.view.backgroundColor=UIColor.grayColor()
        segmentcontroll.selectedSegmentIndex=UISegmentedControlNoSegment
    }
}

答案 3 :(得分:2)

UISegmentedControl就像一组单选按钮。也就是说,一次只能选择一个段。要获得所需的功能,您需要创建一个看起来像UISegmentedControl的自定义控件。

答案 4 :(得分:2)

首先,从您从 UI 添加的分段控件创建一个插座

@IBOutlet weak var segmentedControl: UISegmentedControl!

使用下面的代码以编程方式更改所选片段

segmentedControl.selectedSegmentIndex = 1 // index

答案 5 :(得分:0)

您可以简单地使用selectedSegmentIndex属性,因为文档中有

  

https://developer.apple.com/library/ios/documentation/uikit/reference/UISegmentedControl_Class/Reference/UISegmentedControl.html#//apple_ref/occ/instp/UISegmentedControl/selectedSegmentIndex

如此简单:

[segmentControl setSelectedSegmentIndex:2];

考虑您可以设置 1索引,如果您想要取消全选,则必须设置索引-1

答案 6 :(得分:0)

以编程方式,这不能在SegmentControl中完成,但您可以这样做: 您可以创建一个imageView,将四个按钮放在哪个大小相等的段上,并在按下一个按钮时使它们透明更改imageView的图像,看起来像段C,D这样就可以执行其他任务。