通常だとあまり使用する機会は無いかもしれませんが、特定の領域を x 回タップすることで実行される隠し機能的なものありますよね。

有名所で言うと、Andoiid の開発者モードでしょうか?
(ビルド番号を数回タップ)

今回、その機能を簡単に実装できるように iOS の UIButton を継承したクラスを作成してみました。

コードは下記 GitHub にて公開中です。
https://github.com/bravesoft-lab/HiddenFunctionButton

使い方は通常の UIButton を作成するときと同様にしてもらえれば OK です。

class ViewController: UIViewController, HiddenFunctionButtonDelegate {

...

let hiddenButton = HiddenFunctionButton(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
hiddenButton.delegate = self
view.addSubview(hiddenButton)

...

func hiddenFunctionButton(_ didFiredFunction: HiddenFunctionButton) {
    // do something
}

1つ異なる点として、タップ時の挙動は addTarget ではなく delegate で記述してください。

検知する秒数とタップの回数は下記のように変更することができます。

// 3秒以内に5回タップで反応
hiddenButton.interval = 3
hiddenButton.maxCount = 5

Android 版についても後日作成予定です。

投稿者プロフィール

みっちー
みっちー