我需要一个2行的UISegmentedControl,我不能实现它。我不想使用两个不同的UISegmentedControl。这个问题有什么解决方案吗?如何实现两行的UISegmentedControl?
发布于 2016-12-06 22:08:05
'UISegmentedControl‘不支持多行。如果你需要它,你必须自己构建它,或者找到一个提供它的第三方库。
正如Helium在他/她的评论中所建议的那样,您可以创建一个自定义控件,在内部管理2个或更多分段控件,并处理它们之间的状态变化。
说实话,分段控制并不是那么复杂。创建自定义2D分段控件并不难。如果这是一个关键的需求,那么你可能想要走那条路。
发布于 2018-04-30 14:39:12
基本上,您需要在每个分段控件上都有一个IBAction和IBOutlet。
对IBAction进行编码,以便单击其中一个分段控件将其他分段控件(未选中)的IBOutlet的selectedSegmentIndex设置为UISegmentedControlNoSegment。这会产生分段控件被链接的错觉。
然后,获得所选择的分段控制值的正确信息,简单地将分段控制的所有指标收集到一个常数中。
@IBOutlet weak var segment1: UISegmentedControl!
@IBOutlet weak var segment2: UISegmentedControl!
@IBOutlet weak var segment3: UISegmentedControl!
@IBAction func FirstSecond(_ sender: UISegmentedControl) {
segment2.selectedSegmentIndex = UISegmentedControlNoSegment
segment3.selectedSegmentIndex = UISegmentedControlNoSegment
}
@IBAction func ThirdFourth(_ sender: UISegmentedControl) {
segment1.selectedSegmentIndex = UISegmentedControlNoSegment
segment3.selectedSegmentIndex = UISegmentedControlNoSegment
}
@IBAction func FifthSixth(_ sender: UISegmentedControl) {
segment1.selectedSegmentIndex = UISegmentedControlNoSegment
segment2.selectedSegmentIndex = UISegmentedControlNoSegment
}
let segmentvalue = ["First","Second","Third","Fourth","Fifth","Sixth"]
@IBAction func FirstSecond(_ sender: UISegmentedControl) {
segment2.selectedSegmentIndex = UISegmentedControlNoSegment
segment3.selectedSegmentIndex = UISegmentedControlNoSegment
let valueINeed = segmentvalue[segment1.selectedSegmentIndex]
}
@IBAction func ThirdFourth(_ sender: UISegmentedControl) {
segment1.selectedSegmentIndex = UISegmentedControlNoSegment
segment3.selectedSegmentIndex = UISegmentedControlNoSegment
let valueINeed = segmentvalue[segment2.selectedSegmentIndex + 2]
}
@IBAction func FifthSixth(_ sender: UISegmentedControl) {
segment1.selectedSegmentIndex = UISegmentedControlNoSegment
segment2.selectedSegmentIndex = UISegmentedControlNoSegment
let valueINeed = segmentvalue[segment3.selectedSegmentIndex + 4]
}https://stackoverflow.com/questions/40996688
复制相似问题