UISegmentedControl register taps on selected segment

后端 未结 20 3074
渐次进展
渐次进展 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:55

    iOS 9 solution. Override UISegmentedControl with such class:

    @interface SegmentedControl()
    
    @property (nonatomic) NSInteger previousCurrent;
    
    @end
    
    @implementation SegmentedControl
    
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        self.previousCurrent = self.selectedSegmentIndex;
        [super touchesBegan:touches withEvent:event];
    }
    
    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
        [super touchesEnded:touches withEvent:event];
    
        if (self.selectedSegmentIndex == self.previousCurrent) {
            [self sendActionsForControlEvents:UIControlEventValueChanged];
        }
    
        self.previousCurrent = NSNotFound;
    }
    
    @end
    

提交回复
热议问题