【发布时间】:2018-12-21 22:05:51
【问题描述】:
我正在开发一个智能家居应用程序,用户可以在其中切换设备。
如果设备未连接,则拨动开关可能很危险,因此在这种情况下,我使用switch.isOn = false 将开关拨回并显示警报。
有时开关处于冻结状态,用户界面显示它半开(圆圈为左,背景为蓝色)并且属性显示其关闭。
是否有任何已知的解决方法?还是我是唯一遇到此错误的人?
Google 没有显示直接解决此问题的方法
public class MyUIController: UIViewController{
...
weak var switch:UISwitch!
@IBAction
public func toggle(sender:Any){
if (device.isConnected){
device.sendUpdate(switch.isOn)
}else{
switch.isOn = false
}
}
...
}
【问题讨论】:
-
您应该显示您的代码,但如果设备未连接,为什么不禁用开关?这比让用户做某事然后告诉他们他们不能做更好的用户体验
-
好的,在断开设备和实际更新设备之间有一点超时
-
好的。您仍然应该禁用该开关。编辑您的问题以显示您的代码。即使您确实检测到设备已断开连接并显示警报,也无需关闭开关,直到警报消失。这可能会解决您的问题
-
我明天试试,ty
-
您是从其他地方访问
isOn吗?isConnected是否在等待一些服务器响应(例如同步调用?)你显示什么样的警报?显示警报时是否有可能截取用户界面的屏幕截图?您是否在某处手动删除动画(例如view.layer.removeAnimations())?