OSDN Ticket Archive


Ticket #37860

Touch screen to call up play menu not working.

登録: 2018-01-05 04:51 最終更新: 2018-01-15 01:09

報告者:
snot2bad
担当者:
yknk
チケットの種類:
バグ
状況:
完了
コンポーネント:
MIDITrail Ver.1.1.x for iOS
マイルストーン:
Version 1.1.2 for iOS (完了済み)
優先度:
7
重要度:
7
解決法:
修正済み
ファイル:
なし

詳細

A few seconds after a midi file has been playing, the play menu/options disappear from the screen. You use to be able to touch anywhere on the screen to have the play menu reappear. This no longer works on the iPhone 6 or iPhone 7 with the latest iOS. I've tried touching every inch of the screen. Once in a while I can get the play menu to come up but there's no rhyme or reason to it... it's very sporadic. After a midi file is done playing, the only way to get back to your midi files is by restarting the app. The only way to stop a midi file while it's playing is to close the app. Love the app and use it all the time. Thanks for your help.

チケットの履歴

2018-01-05 04:51 更新者: snot2bad
  • 新しいチケット "Touch screen to call up play menu not working." が作成されました
2018-01-14 21:26 更新者: yknk
コメント

Hello, snot2bad. Thank you for your report. I will fix it in next version(1.1.2).

2018-01-14 21:26 更新者: yknk
コメント

原因

メインビュー制御クラス MTMainViewCtrl の不具合。 スクリーンがタップされたことを判定するロジックを、次のように実装していた。 タッチ開始イベントでタップフラグをON、タッチ移動イベントでタップフラグをOFFにする。 タッチ終了イベントでタップフラグがONのままだった場合、つまり移動イベントが発生しなかった場合に、 タップされたと判断してボタン表示処理を実行していた。

しかしiOSのバージョンアップによって、移動が発生しない場合であっても、定期的に タッチ移動イベントが発生するようになったため、ユーザがタップ操作をした場合でも 「移動が発生したのでタップではない」と誤った判断をしていた。

2018-01-14 21:27 更新者: yknk
コメント

対策

タッチ移動イベントで通知されるタッチ位置を利用して累積移動距離を計算する。 タッチ終了イベントで累積移動距離がゼロの場合は、タップされたと判断する。 移動が発生しない場合であっても、定期的にタッチ移動イベントが発生するが、 通知されるタッチ位置は変わらないため、累積移動距離は変化しない。

MTMainViewCtrl

メンバからタップフラグ m_isTap を削除。 メンバに前回タッチ位置 m_PrevTouchPoint と累積移動距離 m_TounchesTotalDistance を追加。

MTMainViewCtrl::initWithNibName

前回タッチ位置と累積移動距離の初期化処理を追加。

MTMainViewCtrl::touchesBegan

通知されたタッチ位置を前回タッチ位置として保存。累積移動距離をゼロクリア。

MTMainViewCtrl::touchesMoved

通知されたタッチ位置と前回タッチ位置から累積移動距離を更新する。

MTMainViewCtrl::touchesEnded

累積移動距離がゼロの場合はタップとみなす。

MTMainViewCtrl::touchesCancelled

前回タッチ位置と累積移動距離を初期化。

2018-01-14 22:22 更新者: yknk
  • マイルストーン(未割り当て) から Version 1.1.2 for iOS (完了済み) に更新されました
2018-01-15 01:09 更新者: yknk
  • 解決法なし から 修正済み に更新されました
2018-01-15 01:09 更新者: yknk
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

添付ファイルはありません