首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检测UISwitch中的更改

检测UISwitch中的更改
EN

Stack Overflow用户
提问于 2010-11-05 00:06:47
回答 7查看 31.8K关注 0票数 24

这听起来微不足道,但我注意到了一些奇怪的地方。我为UISwitch的Value Changed事件连接了一个处理程序。我期望的是,每次调用处理程序时,开关的值都会改变。但事实并非如此。如果您快速地按下开关,处理程序可能会以开关的相同状态被连续调用(在我的特定应用程序中,这是一个问题)。所以我想知道是否有人注意到了这个行为,并且已经想出了一个好的解决方案。

EN

回答 7

Stack Overflow用户

发布于 2013-10-17 22:53:38

代码语言:javascript
复制
   -(void) createSwitch
    {
        self.searchExistSearchNewSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(0,0,0,0)];
        [self.searchExistSearchNewSwitch addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:self.searchExistSearchNewSwitch];
    }
    - (void)switchValueChanged:(UISwitch *)theSwitch
    {
        BOOL flag = theSwitch.isOn;
    }
票数 19
EN

Stack Overflow用户

发布于 2010-11-05 00:50:02

获取处理程序中开关的状态:

代码语言:javascript
复制
- (void)valueChanged:(UISwitch *)theSwitch {
   BOOL flag = theSwitch.on;
}
票数 8
EN

Stack Overflow用户

发布于 2011-02-10 13:45:45

每次按下都不会立即打开/关闭开关。如果开关处于off位置,您可以在它动画到on位置之前按下几次。这些按下的每一个都被解释为“打开开关”,因为在动画完成之前它不会被认为是“打开”。每次按下都会得到一个"valueChanged“回调,尽管这个值实际上还没有改变。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4098653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档