2016-04-19 9 views
0

touchDownイベントがかなり遅いことがわかりました。メジャーでかなり長いタッチが必要で、軽いタップに反応しませんでした。何故ですか?非常に素早いタッチにどのように反応しますか?

一方、touchesBeganは、必要なときに応答します。つまり、非常に軽くてすばやく反応します。しかし、それはイベントではなく、オーバーライドできる方法です。

問題:touchesBeganは、1)ラベルをサブクラス化する(ラベルに触れる必要がある)、または2)イベントを分析して、ラベルが正しいラベルかどうかを判断する必要があるようです。私はそれがコードのにおいかどうか、そしてシンプルなタッチのためのイベントがあるべきかどうか疑問に思います。

+0

達成したいことを説明してください。あなたのリクエストはかなり混乱しているからです。 – doruvil

+0

UILabelにタップジェスチャ認識機能を追加する場合は、次のようにチェックしてください。http://stackoverflow.com/questions/10079019/how-can-i-add-a-apacesturerecognizer-to-a-uilabel-inside-a-テーブルビューセルは重複している可能性があります – doruvil

答えて

-1

"コードの臭い"?いいえ、それはユーザーインターフェイスの匂いです。ユーザーインターフェイスが悪臭を放つ。

ユーザーインターフェイスのボタンを他のアプリケーションのボタンと異なるようにすると、ユーザーはあなたのアプリを嫌うでしょう。人々が慣れていることをする。

+0

あなたは仮定しています。私が達成しようとしていることが分からないなら、尋ねるのは害ではありません。 – Ruby

+0

私はボタンについて何も言わなかった。私は実際に特定の機会にボタンのように動作するTextFieldを取得しようとしています。 – Ruby

0

まず、ラベルがユーザーとの対話を処理することができます:

label.userInteractionEnabled = true 

あなたがラベルにタップジェスチャーを割り当てることができます。ハンドラメソッドでは、以上stateの認識機能が必要です。 .Beganの場合は、必要なイベントがあります。

このアプローチでは、すべてのラベルにこのハンドラを使用することができます。ハンドラの内部では、次のように触れられたラベルを得ることができます:

let label = tapRecognizer.view as! UILabel 
関連する問題