UISegmentedControl register taps on selected segment

后端 未结 20 3068
渐次进展
渐次进展 2020-12-04 15:28

I have a segmented control where the user can select how to order a list. Works fine.

However, I would like that when an already selected segment is tapped, the orde

20条回答
  •  执笔经年
    2020-12-04 15:50

    Swift 5

    class ReselectableSegmentedControl: UISegmentedControl {
        // Captures existing selected segment on touchesBegan.
        var oldValue: Int!
    
        override func touchesBegan(_ touches: Set, with event: UIEvent?) {
            self.oldValue = self.selectedSegmentIndex
            super.touchesBegan(touches, with: event)
        }
    
        override func touchesEnded(_ touches: Set, with event: UIEvent?) {
            super.touchesEnded(touches, with: event)
    
            if self.oldValue == self.selectedSegmentIndex {
                self.sendActions(for: .valueChanged)
            }
        }
    }
    

    From here

提交回复
热议问题