samvermette / SVSegmentedControl

A UISwitch-like segmented control for your iOS app.
http://samvermette.com/255
MIT License
1.33k stars 191 forks source link

problem with setSelectedSegmentIndex:animated: #64

Open viking2009 opened 11 years ago

viking2009 commented 11 years ago

I'm using old way for tracking changes (addTarget:action:forControlEvents:)

- (void)setSelectedSegmentIndex:(NSUInteger)index animated:(BOOL)animated {
    _selectedSegmentIndex = index;

    if(self.superview) {
        [self sendActionsForControlEvents:UIControlEventValueChanged];

sendActionsForControlEvents called even if selected segment not changed

viking2009 commented 11 years ago

this should solve the problem:

- (void)setSelectedSegmentIndex:(NSUInteger)index animated:(BOOL)animated {
    BOOL sendActions = (_selectedSegmentIndex != index);

     _selectedSegmentIndex = index;

     if(self.superview) {
        if (sendActions)
            [self sendActionsForControlEvents:UIControlEventValueChanged];