UISwitch Bool失败了吗? Switch isOn不是True

时间:2016-12-07 17:50:55

标签: ios objective-c iphone uiswitch

所以我有一个奇怪的。

我目前在App Store中有一个清单应用程序。今天,用户在使用UISwitch时报告了奇怪的行为。

如下所示,这是Storyboard内部的一个简单开关,链接到IBAction,就像我一直以来所做的那样,从iOS 8开始。

您检查切换到on,它会将图像更改为完整的alpha以表明您拥有它,否则图像保持半透明且off

- (IBAction)Switch1:(id)sender {         //IBAction linked to Switch

     if([S001 isOn]) {                   //if Switch 'S001' is ON...
         myImage.alpha = 1.0;            //make image NOT transparent     

         ...
         //save ON                       //save data using NSUserDefaults
     }
     else {                              //else switch is OFF...
         myImage.alpha = 0.3;            //make image TRANSPARENT 

         ...
         //save OFF                      //save data using NSUserDefaults
     }
}

基本上,当用户按下开关时,它会动画并更改为ON,但它会查看if([S001 isOn])从未被调用,因为if内部没有任何内容被调用。即图像不会变为完整的alpha,并且没有任何内容保存为ON。

用户在运行iOS 10.1.1的iPhone 6上。现在奇怪的是我在iPhone 7+上运行iOS 10.1.1并且运行正常。它也适用于所有屏幕尺寸的iOS 9。

我已经完成了一些阅读,并在Stackoverflow上找到了THISTHIS,看起来其他人遇到了类似的问题。

所以我猜测,如果人们在iOS 9中拥有我的应用程序,然后升级到iOS 10,那么当他们遇到此问题时,我无法确定。因为它似乎是一个独特的案例。

可能导致这种情况的原因是什么?我可以做些什么来改善我的iOS 10用户的IBAction?

1 个答案:

答案 0 :(得分:1)

- (IBAction)Switch1:(UISwitch *)sender {         //IBAction linked to Switch

     if([sender isOn]) {                   //if Switch 'S001' is ON...
         myImage.alpha = 1.0;            //make image NOT transparent     

         ...
         //save ON                       //save data using NSUserDefaults
     }
     else {                              //else switch is OFF...
         myImage.alpha = 0.3;            //make image TRANSPARENT 

         ...
         //save OFF                      //save data using NSUserDefaults
     }
}

试一试。这就是@rmaddy引用发件人的意思。

要确保在切换开关时调用此功能,请务必指定" Value Changed"创建操作时的事件(通过右键单击 - 将开关拖动到.m文件)

Dragging Switch from storyboard to .m

Possible Events