5

タッチイベントを使用して画面に描画するアプリがあります。私はタッチのUITouch locationInViewを返すために使用します。CGPoint問題は、x 座標と y 座標が常に同じであることです。ただし、iOS 4.2.1 を実行している第 2 世代のデバイスでのみ、かつアプリがリリース モードでビルドされている場合のみです。私のボタンはタッチに正しく反応するので、これはtouchesMovedまたはイベントオブジェクトから直接タッチを取得する場合にのみ問題になるようです。touchesEnded

http://getmoai.com/forums/new-users/ios-touch-sensor-y-co-ordinate-always-the-same-as-x/の投稿のおかげで、次を使用して問題を解決できました新しい LLVM 3.0 コンパイラではなく LLVM-GCC コンパイラを使用し、最適化レベル 0 を使用します。

興味深いのは、GCC コンパイラを使用すると、 で受け取ったタッチ位置が修正されtouchesEnded、最適化レベルを変更してで受け取っ-O0たタッチ位置が修正されたことtouchesMovedです。その理由を説明することはできませんが、今のところ、私のアプリがこれらのデバイスで動作していることに興奮しています。

私の質問は、古いコンパイラを使用してアプリをストアに配信することの欠点は何ですか? (最適化レベルの影響は理解しています。) iOS 4.2.1 および/または第 2 世代デバイスに対してのみ、古いコンパイラとより低い最適化レベルを使用するようにプロジェクトを構成する方法はありますか?

4

1 に答える 1

1

私はこのハックを使用しています:

// not working (location.x == location.y)
CGPoint location = [touch locationInView:_myView];
//

// working!
static CGPoint location;
location = [touch locationInView:_myView];
//
于 2012-03-10T22:40:33.877 に答える