【发布时间】:2020-11-22 18:59:27
【问题描述】:
我的问题:
是否可以将 UIButton 子类化为在实际调用该函数之前必须按三下按钮?
上下文
我是一名裁判,所以在比赛期间我需要记录剩余时间和两支球队的比分。因为我厌倦了同时使用纸和秒表,所以我决定制作一个应用程序来为我处理它。毕竟我是程序员,为什么不呢。
由于始终将手机放在手中是不切实际的,因此我总是将手机(运行应用程序的手机)放在口袋里。我只在需要更改分数或发出哔哔声(表示时间到了)时才将其取出。为了防止我的手机在口袋里时意外按下其中一个按钮,我确保您必须连续按三次按钮以确保您真的打算按下它。我通过声明变量来跟踪我在屏幕上的每个按钮在最后一秒被按下的次数来做到这一点。但这也意味着我必须拥有与屏幕上按钮数量一样多的变量,并且在调用函数时,我首先必须检查之前按下了多少次以确定是否执行代码。它有效,但我最终得到了一些非常混乱的代码。我希望通过子类化 UIButton 可以做得更好。
【问题讨论】:
-
这能回答你的问题吗? how to init a UIButton subclass?
-
@nvidot 我看过那个帖子。我确实了解子类化的工作原理,因此我知道如何添加变量和覆盖初始化程序。我不知道如何使连接到按钮的 IBAction 仅在您连续按下该按钮 3 次后才被调用。
-
在动作/方法中放置一个计数器。
-
@Magnas 好吧,我想我已经做到了你的意思(见上下文)。它有效,但它真的很乱。
-
拥有一个带有一个按钮的前置“锁定”屏幕不是更好吗?在解锁 viewController 以显示所有控制按钮之前的两秒长点击手势?