Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在UISegmentedControl中以编程方式设置段的选定状态_Ios_Ios7_Uisegmentedcontrol - Fatal编程技术网

Ios 如何在UISegmentedControl中以编程方式设置段的选定状态

Ios 如何在UISegmentedControl中以编程方式设置段的选定状态,ios,ios7,uisegmentedcontrol,Ios,Ios7,Uisegmentedcontrol,我的UISegmentedControl中有四个段。如果用户选择了第一段,我将尝试通过编程同时设置第三段和第四段的选定状态 示例:在给定的分段控件中,如果用户选择了段a,则应选择C、D 我研究了苹果的方法,但没有发现一种符合我的要求。我正在寻找一种类似于- 非常感谢您在这方面的任何帮助 -(void)setSelected:(BOOL)为分段索引:(nsInteger)段选择 参数 启用 是选择指定的段,或否取消选择该段。默认情况下,将取消选择线段 分段 标识控件中某个段的索引号。它必须是介于

我的UISegmentedControl中有四个段。如果用户选择了第一段,我将尝试通过编程同时设置第三段和第四段的选定状态

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

我研究了苹果的方法,但没有发现一种符合我的要求。我正在寻找一种类似于-

非常感谢您在这方面的任何帮助


-(void)setSelected:(BOOL)为分段索引:(nsInteger)段选择

参数

启用

是选择指定的段,或否取消选择该段。默认情况下,将取消选择线段

分段

标识控件中某个段的索引号。它必须是介于0和段数(numberOfSegments)减1之间的数字;超过此上限范围的值将固定到该值



您只需使用文档中的
selectedSegmentIndex
属性即可

简单地说:

[segmentControl setSelectedSegmentIndex:2];

考虑到您可以只设置1个索引,如果您想取消选择所有,您必须设置索引-1

使用
setSelectedSegmentIndex
像这样-

[mySegmentControl setSelectedSegmentIndex:index]

UISegmentedControl
的工作原理类似于一组单选按钮。也就是说,一次只能选择一个段。要获得所需的功能,需要创建一个类似于
UISegmentedControl
的自定义控件

这不能在SegmentControl中以编程方式完成,但可以通过以下方式完成:
您可以创建一个imageView,在其上放置四个大小相等的按钮(如线段),并在按下一个按钮时使其透明。更改imageView的图像(如线段C、D),这样您可以执行其他任务

此代码适用于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
    }
}

Swift 4.0

segmentedControl.selectedSegmentIndex = index

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

@IBOutlet weak var segmentedControl: UISegmentedControl!
使用下面的代码以编程方式更改选定的段

segmentedControl.selectedSegmentIndex = 1 // index

嗨-我一开始尝试过这个,但是setSelectedSegmentIndex:message一次只选择一个段。若用户选择段a,我想立即选择c,d。@Revanth-您选择的控件不适合您的要求。正如建议的那样,您应该考虑构建自己的控件以满足您的需求。谢谢。我可以将一些按钮组合在一起,使其看起来像一个UISegmenetedControl,并添加我正在寻找的自定义功能。