2017-10-11 7 views
0

私はすべてのタッチとボタンのアクションを取得したいと思っています。これは、スウィフトアプリです。エンドユーザーの総タッチ/アクションのカウント数を即時に取得するには

私は次のコードで試してみました:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
     UtilityClass.sharedInstance.touchesCount += 1 
     print(UtilityClass.sharedInstance.touchesCount) 
    } 

しかし、それだけUIViewタッチイベントを呼び出しますが、UIButton行動を呼びかけていない、私の要件を達成するために、他のソリューションがあります。

私はこの単一のボタンのアクションを増やすことができますが、私は自分のアプリでボタンアクションの数を持っています、なぜ私はここにこれを掲示しています。

+0

I thiあなたは '@ IBAction'を使用してボタンのタッチ数をカウントする必要があります。 – 3stud1ant3

+0

最新の質問をご確認ください。 –

+0

「UtilityClass.sharedInstance.touchesCount + = 1」という同じコードを各ボタンの動作で試すことはできますか? – 3stud1ant3

答えて

1

は、プロジェクト

extension UIButton { 
    open override func sendAction(_ action: Selector, to target: Any?, for event: UIEvent?) { 
     super.sendAction(action, to: target, for: event) 
     UtilityClass.sharedInstance.touchesCount += 1 
     print(UtilityClass.sharedInstance.touchesCount) 
    } 
} 

編集にこれを追加してみてください。上記の

class ViewController: UIViewController { 
    @IBAction func buttonAction(_ sender: Any) { 
    } 
} 
extension UIButton { 
    open override func sendAction(_ action: Selector, to target: Any?, for event: UIEvent?) { 
     super.sendAction(action, to: target, for: event) 
     print("1111") 
    } 
} 

私の完全なテストコードで、私は、私はボタンのアクションをクリックするたびにUIButtonある出口ボタンを持って、 1111が表示され、ボタンクラスがUIButtonのカスタムサブクラスの場合は、extension UIButton {extension YourCustomButtonName {に変更してください。

+0

そのコンパイルエラーは、どこに宣言されていますか? –

+0

すみません、編集バージョンを確認してください。 –

+0

@AnilkumariOS開発者は、それをクラス外のファイルで宣言します。 –

関連する問題