gpt4 book ai didi

ios - 覆盖 selectedSegmentIndex

转载 作者:行者123 更新时间:2023-11-28 06:28:17 25 4
gpt4 key购买 nike

我有一个 UISegmentedControl 的子类,我想捕捉一个选择段的事件。

我重写了 selectedSegmentIndex 并使用了 didSet 但它没有被调用,并且在没有调用 didSet 的情况下更改了值。

class SLSegmentControl: UISegmentedControl {
override var selectedSegmentIndex: Int {
didSet {
print(selectedSegmentIndex)
}
}

如果我设置

isMomentary = true

didSet-1 值调用,无论选择哪个段。

目前我正在使用 addTarget 来捕捉这个事件。但是,一旦在此类之外将 Target 添加到此类,这将被禁用,因此我想避免使用它。

addTarget(self, action: #selector(didSegmentSelect(sender:)), for: .valueChanged)

据我所知,它在 objective-c 中有效,但在 swift 3 中无效。我错过了什么吗?

我可以通过将观察者添加到 selectedSegmentIndex 来跟踪用户交互。

最佳答案

如果我设置

isMomentary = true

didSet 以值 -1 调用,无论选择哪个段。

如果您设置 isMomentary = true 那么您的分段控件将更像是按钮的水平堆栈 View ,并且在任何点击时它都会触发具有正确索引的 valueChanged 回调, 但随后立即将其设置为 noSegment-1

使用 isMomentary = true 如果您点击一个按钮,它会突出显示然后返回到其正常 状态。它没有选定状态。通常这不是你想要的。这只是按钮水平堆栈 View 的便利。我会说这有点违反直觉。

关于ios - 覆盖 selectedSegmentIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41133236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com