例如,我有2个按钮Change email
和Change password
,它们中的每个都调用Alamofire请求函数,并且响应数据应重新加载UI和数据方案。
重点是,此PUT请求不仅更改服务器的数据,而且生成新令牌并获取更新的用户配置文件。
当同时按下按钮,触摸开始和结束的同时,应用在解析请求后崩溃。
我正在阻止另一个UI元素(例如文本字段),我试图阻止另一个按钮,但是当同时按下它时,它将不起作用。
那么如何防止同时触摸?我不擅长OperationQueue
,也许就是这样吗?是否可以检查操作是否不是首先在队列中执行并杀死它?
答案 0 :(得分:3)
将isExclusiveTouch
中的UIButton
设置为true
,以便在特定时间仅触发一个按钮动作。
此代码将获取视图中包含的所有按钮,并将ExclusiveTouch设置为true:
self.view.subviewsRecursive()
.filter { $0 is UIButton }
.forEach { $0.isExclusiveTouch = true }
答案 1 :(得分:0)
UIResponder对象的此问题很常见。但是,您的问题描述不清楚,您的实现似乎不太好。 在这里,要解决此快速触摸事件问题: 您的解决方案是消除UIButton的action事件。 当用户多次错误地按下按钮(或任何UIResponder对象)时,反跳也有助于防止多次执行,直到那时UI才被阻止。以下文章可能会指导您更多有关此的内容: Debouncing to tackle repeating user action