UISwitch的事件响应

我们一般设置UISwitch的响应事件是UIControlEventValueChanged,但是在使用中突然发现,当你触摸开关某一端,不松手然后往下滑动,它的事件响应方法会调用很多次.

而此种操作开关状态并不会发生改变,因此在事件响应的方法中如果没做处理可能会引起一些bug.目前我的处理是如果开关的状态未发生改变就return.不知道有什么更好的方法应对上述操作情况.

static NSInteger swStatus = -1;

- (void)switchClicked:(UISwitch *)sender withEvent:(UIEvent *)event
{
    NSLog(@"被调用---%d-----",sender.on);
    if (swStatus != sender.on)
    {
        swStatus = sender.on;
    }
    else
    {
        return;
    }
    
    NSLog(@"---%d-----",sender.on);
}

posted @ 2015-12-15 18:15  xq_120  阅读(858)  评论(0编辑  收藏  举报