【发布时间】:2013-10-08 23:44:08
【问题描述】:
我正在使用 UISwitch 在我的应用程序中调用子视图来显示屏幕。但是,该开关仅在大约 60% 的时间内工作。为了测试我的代码,我将开关连接到另一个 IBAction 以将开关的状态写入控制台。这两个函数在某些时候都没有响应开关的状态,即,两个函数在某些时候同时忽略了开关的状态。有没有其他人在 iOS7 中使用 UISwitches 遇到过这种行为?
- (IBAction)showHideSomeSubView:(UISwitch *)sender {
if (_mySwitch.on) {
[self.view addSubview:someSubView];
}
else {
[someSubVew removeFromSuperview];
}}
编辑:
同一个开关连接到以下动作:
- (IBAction)switchToggled:(UISwitch *)sender {
sender = _mySwitch;
if ([sender isOn]) {
NSLog(@"On");
} else {
NSLog(@"Off");
}}
两个动作都以相同的方式响应开关。
【问题讨论】:
-
你用什么事件来响应状态的变化?
-
你能发布你的代码吗?
-
@Abizern:显示/隐藏子视图的 IBAction。
-
什么 UIControl 方法正在调用它?
-
当
UIControl子类(例如UISwitch)创建目标-动作连接时,它会根据设置的事件位掩码:UIControlEvents调用动作。您将 IBAction 与哪些活动联系起来?