問題タブ [touches]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
509 参照

iphone - サブビューすべてのウィンドウでタッチイベントを取得

私の見方には少し問題があります。

uiviewControlerがあり、xibをロードします。このビューにはUIButtonがあります(タッチすると正常に動作します)

コードで作成されたサブビュー(別のクラス)を追加します。このビューは、彼女のタッチイベントに応答します。

このサブビューをビューに追加すると、このビューのイベントは問題ありませんが、最初のuiviewのUIButtonが機能しません。

エラーが発生しましたか?

編集 :

私はいくつかのテストを行いました。私のuiviewは実際にはロードだけではありません。実際、新しいuiviewControllerをロードし、そのサブビューを現在のuiviewControllerに追加します。

そして、私の問題は、新しいuiviewControllerの透明性が私のタッチイベントを妨害したことによるものです。

0 投票する
1 に答える
366 参照

iphone - iPhone + OpenGL + Touches: FPS ドロップ

最近、非常に奇妙な問題に遭遇しました。iPhone の画面に触れて指を動かすと、FPS の最大 50% が消費される可能性があります。ええ、可能性のあるボトルネックについてコードをチェックしましたが、問題ではありません。この記事を書く前に試した最後の手段は、すべてのタッチ処理コードをコメントアウトしてから FPS を確認することでした。結果:ノータッチ – 58-60. 指に触れて動かす – 瞬時に 35 ~ 40 FPS。

レンダリングは別のスレッドで行われるため、メインの実行ループ イベントが別のスレッドと衝突することはありません。ただし、このような FPS の低下は非常に目立つため、この問題を解決することは私 (および私が開発するゲーム) にとって非常に困難です。

よろしくお願いいたします。

UPDATE:レンダリングスレッドの優先度をより高い値に設定すると少し役立つようです...

0 投票する
2 に答える
1415 参照

objective-c - UIImageView サブクラスがコントローラーのサブビューにタッチを渡さない

UIImageViewいくつかのサブクラス インスタンスの背後にサブクラス (フルスクリーン)を追加するとUIButton、それらのボタンはタッチの受信を停止し、機能しなくなります。ユーザーのタッチへの接続を復元するために試したことはありません。

私は試しました:
a)UIImageView正面図(タッチを受け取る)にサブクラスを使用し、 setUserInteractionEnabledYESであることを確認します。結果:UIButtonsが存在する場合、応答していませんUIView

b) 正しいことを期待して、フロント ビューからビュー コントローラーにタッチを明示的に渡します。結果:UIButtonsタッチに反応しません。

c)前面のタッチが受信されたときに操作したいボタンで、メソッドとメソッドを直接touchesBegan呼び出しtouchesMovedます。結果: 驚くべきことに、ボタンにタッチ イベントを詰め込んでもボタンが反応しません。touchesEndedUIView

d) フロント ビューから にタッチを渡し、UIViewControllerすべてのサブビューを反復してタッチを手動で配布します。touchesBeganこれを行う方法を示す方法を含めました。ループが無限に実行されると、最初のビューを超えて進行することはありません (タイプは ですFrameUIView)。

この問題は、適切なビュー階層またはレスポンダー チェーンを理解していないことが原因である可能性が高いことはわかっています。

ボタンの後に作成された最後のビューにコメントすると、ボタンは正常に機能します。UIButtonsこの点で特別なことはありますか?

これがコードです。

その中にUIViewControllerサブクラスがあります:

これを行う方法に関するヒントを知っている人は誰でも、インターネットと Cookie を獲得できます。ロシアンルーレットの騒乱のためのリボルバーも受け入れます. ありがとうございました。

0 投票する
2 に答える
661 参照

uiwebview - iphoneSDKのUIWebviewでの注釈

ウェブページに落書きするのに助けが必要です。つまり、ユーザーがuiwebviewを移動するたびに、タッチの動きに応じて線を引く必要があります。

これは可能ですか。

誰かがこれで私を助けてくれますか?

ありがとう、Mrudula。

0 投票する
1 に答える
343 参照

objective-c - タッチの処理

いくつかのサブビューを持つUIViewサブクラスがあり、クラスでこれらのイベントを処理したいと思います。

  • touchesBegan:withEvent:
  • touchesMoved:withEvent:
  • touchesEnded:withEvent:

しかし、私はこれらのイベントがサブビューで呼び出されることも望んでいます。どうすればそれを達成できますか?

(私はすでにhitTestを試しましたが、touchesBeganイベントのみを取得し、メソッドでタッチは送信されません)

0 投票する
2 に答える
2293 参照

ios - iPhone: UIViewController に触れる

UIViewController があり、その上に UIImageView を配置し、次に UIScrollView を配置します。

UIScrollView のタッチは問題なく処理できますが、UIViewController の特定のタッチを処理したいと考えています。

5 秒間保持される UIScrollView に触れるだけで済みます (この部分は正常に動作します)。UIViewController に渡したいものはそれ以下です。

UISCrollView では、次のように呼び出します。

UIScrollView から一番下の UIViewController にタッチを渡す方法はありますか、または UIViewController への参照を UIScrollView に渡す必要がありますか?

0 投票する
1 に答える
24498 参照

ios - UITableView から UITableView に項目をドラッグ アンド ドロップする方法に関するチュートリアル

私はしばらくこれについて頭を悩ませていましたが、それを理解しました。このウェブサイトから多くの助けを得たので、コミュニティに還元したいと思います:)。

ある UITableView から別の UITableView にアイテムをコピーしようとしていますが、これを行う方法に関してウェブで見た情報はせいぜい大ざっぱです。私は自分でそれを理解したので、私の小さなアーキテクチャについて説明します。

  • マスター UIView
    • UITableView を使用した UIView
      • カスタム UITableViewCell
        • コピーされるカスタム UIView (私の場合は Person オブジェクト)
    • UITableView を使用した UIView
      • カスタム UITableViewCell
        • コピーされるカスタム UIView (私の場合は Person オブジェクト)

UITableView にある人物オブジェクトは、あるテーブルから別のテーブルにドラッグ アンド ドロップしたいオブジェクトです。アイテムをテーブルからポップして、1 回のスムーズな動きでドラッグする方法を理解するのが最も困難でした。長い間、操作を実行するのに 2 回のタッチが必要でした。

Person オブジェクトから始めて、これは画像を含む単純なオブジェクトです。ドラッグが行われているときに Person の中心位置を変更するには、独自の touchesMoved メソッドを実装する必要がありました。

Person オブジェクトの userInteractionEnabled フラグを初期化時に NO に設定して、テーブル内のクリックが Person オブジェクトによってキャッチされないようにします。その場合、Person オブジェクトはテーブル内で移動し、目的に反します。

次のオブジェクトは、カスタム UITableViewCell です。このオブジェクトは、ユーザーの最初のタッチをキャッチする役割を果たします。それがすべきことは、このタッチをキャッチして Person を「ポップ」することです。Person は、カスタム UITableViewCell に属するサブビューの 1 つです。

上記のメソッドで userInteractionEnabled フラグが反転することに注意することが重要です。タッチする前は、Person オブジェクトは人のタッチに対して「立入禁止」になっています。カスタム セルが移動をキャッチした後、親のビューに追加して Person を解放し、アクティブ化します (userInteractionEnabled=YES)。次に、Person オブジェクトが「生まれ」、それ自体で移動タッチを処理できます。

これには、Person オブジェクトが左上隅で点滅するが、すぐにユーザーの指に落ちるという小さな不具合が 1 つあります。

この設計の最後の部分は、マスター UIView が「タッチ遷移」を処理する必要があることです。ユーザーがテーブルに触れて Person オブジェクトがポップアウトされた場合、アプリはフォーカスをテーブルから削除して Person オブジェクトに向ける必要があることを認識する必要があります。これが行われた方法は、マスター UIView の hitTest メソッドが次のようにオーバーロードされたことです。

このコードが機能する方法は、Person がテーブルからポップアウトされたときに、それに焦点を合わせていないということです。タッチは、Person がポップアウトされた UITableView によって「所有」されます。hitTest メソッドは、そのタッチに焦点を合わせ直すための鍵です。定期的に、システムはどの UIView がタッチのフォーカスであるかを確認します。hitTest メソッドは、その UIView を識別するためにシステムによって呼び出されます。Person がマスター ビューにアタッチされている場合、この hitTest 関数はすべてのサブビューを反復し、Person の存在を検出して、それを「主要な」タッチ オブジェクトとして返します。指の動きは、UITableView ではなく Person にすぐに報告されます。

これが実装の根性です。UITableView で移動オブジェクトを「キャッチ」するのは簡単です。ご不明な点がございましたら、投稿してください。

EDIT #1 Person オブジェクトの削除は、思ったよりも難しいことがわかりました :)。UITableView がすべての移動イベントを吸い込んでいるため、親が移動しているときに UITableView がスクロールしないようにする行を追加する必要がありました。
touchesEnded 関数はカスタム UITableViewCell クラスで起動します。
mj

0 投票する
1 に答える
697 参照

iphone - beginTouchesとendTouchesをccBeginTouchとccEndTouchに変換する

作業中のゲームをUIkitからcoocos2dに変換しています。UIKITを使用して、以下のコードを使用して、タッチ偶数をメソッドに渡します。Cocos2dで同等のものは何でしょうか?

cocos2dを使用した場合と同等のものは何ですか?

私は自分でこれを理解しようとしました、そして私はグーグルで何時間も過ごしました、しかし私は実行可能な解決策を思いつきませんでした。

0 投票する
1 に答える
261 参照

iphone - iPhone 4: タッチはシミュレーターでは機能しますが、デバイスでは機能しません

私はユニバーサルアプリケーションを開発しています。実際にテストしました:

  • iPad: シミュレータ OK - デバイス OK
  • iPhone 3G: シミュレータ OK - デバイス OK
  • iPhone 3GS: シミュレータ OK - デバイス OK
  • iPhone 4: シミュレータ OK -デバイスが動作しない

アプリケーションはタッチ入力に応答しません。いくつかのブレークポイントを touchBegun、touchMoves、touchEnded に配置しようとしましたが、呼び出されることはありません...何か考えはありますか?

0 投票する
3 に答える
300 参照

iphone - ユーザーが画面上に2本の指を持っていて、1本の指を持ち上げたとき、何も起こらないようにします

いい加減にしろ。

タイトルが言うように、私は少し漬け物になっています。

これが私の問題の概要です。私はこの船を正しく持っています。画面の中央下部(240,0)にあります。ユーザーが240を超えるポイントで右にタッチすると、船は右に移動します。そして、ユーザーが240未満のポイントでタッチした場合は左に移動します。ただし、画面上に一度に1本の指しかない場合はこれが最適です。ユーザーが右に触れて指を離さずに左に触れた場合(画面に2本の指があります)、右の指を離すまで船は右に動き続け、突然船は左に向かって移動します。セカンドタッチ。

タイマーを使用して、現在のx座標から数値を加算/減算して、移動させています。

これは私が一言で言えば持っているものです:(私は初心者です笑ったり嫌ったりしないでください)

助けがあれば、ゲーム「Radiant」のコントロールを完全に複製しようとしています。あなたが助けてくれれば、私はあなたを永遠に真剣に愛します。

明確にするために、私はこれを実現させたいと思います。

  1. ユーザーが画面の右側に触れる
  2. 船は右に移動します
  3. ユーザーが人差し指で画面の左側に触れる
  4. ユーザーが最初のタッチを持ち上げていないために船がまだ右に動いている間に、ユーザーは最初のタッチを持ち上げます
  5. その後、船は即座に進路を変更し、2番目のタッチに向かって左に移動します

現在、マルチタッチを有効にしているので、次のように機能します。

  1. ユーザーが画面の右側に触れる
  2. 船は右に移動します
  3. ユーザーが人差し指で画面の左側に触れる
  4. 船が左に移動し、ユーザーが最初のタッチを持ち上げます
  5. ユーザーが2回目のタッチを解除していなくても、船はトラックで停止します