[英]How can I set the default state of a UISegmentedControl?
有没有办法在界面生成器的 UISegmentedControl 中设置起始选定段,或者我必须在代码中设置? 如果它在代码中,viewDidLoad 是设置它的最佳位置吗?
从代码中,你可以只做self.segmentedControl.selectedSegmentIndex = someDefaultIndex
。
您是否应该在viewDidLoad:
设置它完全取决于您的应用程序的结构。 例如,如果您的应用程序是第一次启动并加载视图,并且需要将控件设置为它在应用程序上一次运行期间拥有的任何值,那么在那里进行操作肯定是有意义的。
在界面生成器中,当您在 UI 上选择 UISegmentedControl 对象时,然后在属性窗格中,在段控件中有段下拉菜单,选择要选择的段(0,1 等)并勾选其下方的“已选择”选项。
如果您不使用故事板并且想像我一样在一些设置/网络之后设置默认索引,那么如果用户没有,这个小片段会选择一些东西。 我把它放在我UISegmentedControl
子类中,但你可以把它放在任何地方。 (斯威夫特 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
}
}
单击分段控件后,转到创建分段的位置并选择您想要的默认分段。 然后在它下面会有一个带有“已选择”的框。 选择它,它将是默认值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.