无论实现如何,UISegmentedControl 都拒绝工作

Posted

技术标签:

【中文标题】无论实现如何,UISegmentedControl 都拒绝工作【英文标题】:UISegmentedControl refuses to work regardless of implementation 【发布时间】:2018-05-25 23:26:29 【问题描述】:

我就是无法让 UISegmentedControl 工作。甚至不做一些简单的事情,比如改变颜色。我想我已经尝试了至少十几种不同的实现,但这是我最新的一个。

import UIKit

class FirebaseSegmentedView: UIViewController 
    @IBOutlet var firstContainer: UIView!
    @IBOutlet var secondContainer: UIView!

    @IBOutlet weak var segment: UISegmentedControl!

    @IBAction func segmentValueChanged(_ sender: Any) 
        let getIndex = segment.selectedSegmentIndex

        switch (getIndex) 
        case 0:
            self.firstContainer.isHidden = false
            self.secondContainer.isHidden = true
        case 1:
            self.firstContainer.isHidden = true
            self.secondContainer.isHidden = false
        default: break
        
    

这是我的故事板的截图。

ViewContainer 可以同时工作。第一个加载,当我将第一个滚动到不合适的位置时,我可以看到第二个。我只是想制作一个简单的分段控件来隐藏一个并显示另一个。

【问题讨论】:

【参考方案1】:

这就是问题所在,就在您展示的情节提要的屏幕截图中:

看到里面写着“Touch Up Inside”了吗?那就是问题所在。 Touch Up Inside 是错误的控制事件!当您点击 UISegmentedControl 的一个片段时,您不会收到 Touch Up Inside 事件;你得到一个值改变事件。修复它,让您的分段控件发出一个以segmentValueChanged 作为其操作函数的 Value Changed 事件,然后一切就绪。

【讨论】:

哇,成功了。我确信这也是正确的事件。谢谢

以上是关于无论实现如何,UISegmentedControl 都拒绝工作的主要内容,如果未能解决你的问题,请参考以下文章

为 UISegmentedControl 定义点击事件

可滑动的 UISegmentedControl

如何更改 UISegmentedControl 的字体颜色

如何使 UISegmentedcontrol 透明?

iOS 13 - UISegmentedControl - 如何更改 selectedSegment 的圆角半径?

如何检查用户是不是选择了 UISegmentedControl?