有没有办法设置在Interface Builder选片段在一个UISegmentedControl出发,还是我必须这样做的代码? 如果是在代码中,被viewDidLoad中设置它的最佳地点?
Answer 1:
在Interface Builder中,当您选择UISegmentedControl对象上你的用户界面,然后在属性面板中,在段控制有段下拉菜单中,你想选择的选择段(0,1等),并勾选下方的“选择”选项。
Answer 2:
从代码中,你可以做self.segmentedControl.selectedSegmentIndex = someDefaultIndex
。
你是否应该将其设置在viewDidLoad:
与否完全取决于你的应用程序的结构。 例如,如果您的应用程序启动和加载首次的观点和需要设置控制任何值前一个应用程序的运行过程中它有,那么它肯定是情理之中的事那里。
Answer 3:
如果你不使用故事板和希望/一些设置后设置一个默认指数联网和我一样,这个小片段将选择的东西,如果用户没有。 我把这个在我的子类UISegmentedControl
,但你可以把这个任何地方。 (SWIFT 3)
Decl: var UISegmentedControlNoSegment: Int { get }
Desc: A segment index value indicating that there is no selected segment. See selectedSegmentIndex for further information.
精简版:
if selectedSegmentIndex == UISegmentedControlNoSegment {
selectedSegmentIndex = initialIndex
}
加长版
func reloadData() {
guard let numberOfItems = dataSource?.numberOfItems() else {
return
}
removeAllSegments()
for index in 0...numberOfItems {
insertSegment(with: $image, at: index, animated: false)
}
if selectedSegmentIndex == UISegmentedControlNoSegment {
selectedSegmentIndex = initialIndex
}
}
Answer 4:
点击后,分段控制转至您创建的细分,然后选择你想要成为默认的一个。 然后下面会有与它“选定”的Box。 选择这将是默认的。
文章来源: How can I set the default state of a UISegmentedControl?