繁体   English   中英

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

[英]How to programatically set the selected state for a segment in UISegmentedControl

我的 UISegmentedControl 中有四个段。 我试图在同一时间,如果用户已经选择了第一区段编程方式设置在第三和第四区段的选择状态。

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

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

非常感谢您对此的任何帮助。


-(void)setSelected:(BOOL)为SegmentAtIndex选择:(NSUInteger)段

参数

启用

YES 选择指定的段或 NO 取消选择该段。 默认情况下,未选择段。

部分

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


斯威夫特 4.0

segmentedControl.selectedSegmentIndex = index

像这样使用setSelectedSegmentIndex -

[mySegmentControl setSelectedSegmentIndex:index]

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

UISegmentedControl工作方式类似于一组单选按钮。 也就是说,一次只能选择一个段。 要获得您想要的功能,您需要制作一个看起来像UISegmentedControl的自定义控件。

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

@IBOutlet weak var segmentedControl: UISegmentedControl!

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

segmentedControl.selectedSegmentIndex = 1 // index

您可以简单地使用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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM