Swift:以编程方式更改我的UISegmentedControl项目

4
我希望根据另一个选择更改我的UISegmentedControl中的项目。 我不想更改项目的数量,而只想更改项目标签以及UISegmentedControl的“hidden”变量。
以下是获取UISegmentedControl的代码:
@IBOutlet weak var viewPicker: UISegmentedControl!

这里是修改它的代码:

viewPicker = UISegmentedControl(items: ["Description", "Location"])

然而,这种方法行不通,有时会将viewPicker设置为nil,从而导致错误。最好的方法是什么?

3个回答

4

既然你将变量声明为"弱引用",那么只要你对其进行了赋值,它就会被释放。但无论如何,你都不应该这样做,因为它是@IBOutlet -> 你应该通过界面构建器连接它。

至于更改标题,而不仅仅是创建新的SC,请使用

self.viewPicker.setTitle("", forSegmentAtIndex: index)

隐藏/显示分段控件的方法:

self.viewPicker.hidden = true / false

希望它有所帮助!

3

UISegmentControl有一个方法可以让您单独更改标签,称为:setTitle(_:forSegmentAtIndex:)。因此,您只需在分段控件上使用它,如下所示:

self.viewPicker.setTitle("Description", forSegmentAtIndex:0)
self.viewPicker.setTitle("Location", forSegmentAtIndex:1)

0

对于Swift 3.0,请使用:

 self.viewPicker.setTitle("Description", forSegmentAt: 0)
 self.viewPicker.setTitle("Location", forSegmentAt: 1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接