2011-08-02 6 views
0

私はアニメーションパイチャートを開発しました。パイチャートでは、ユーザーがパイチャートスライスをクリックするとチャートから出てきます。現在、私はPieの各スライスを別のCGLayerに描画しています。ユーザーがスライスをタップすると、その特定のピクセルの色を選択し、対応するレイヤーを引き出すRGBコード(ハー​​ドコード)と一致させます。iOS SDK-円グラフスライスのタッチを検出するにはどうすればよいですか?

私は、コアプロットのようなサードパーティチャートライブラリを使用したくありません。

各レイヤーを個別のグラフィックエンティティにして、そのオブジェクトの接触を検出できる方法はありますか?

おかげ

答えて

0

あなたはポイントがパス内にある場合、あなたがテストすることができCGを使用している場合。

チェックアウトCGPathContainsPointhere

3

タッチのX、Y座標を使用して、円グラフの中心と距離を計算することはできませんか?

距離が半径より小さい場合は、角度を使ってどのチャートがタップされたか把握します。

1

CAShapeLayerを使用して個々の円のスライスを表しました。 CAShapeLayerインスタンスには、パスプロパティがあります。このプロパティを使用すると、そのパス内にポイントがあるかどうかをテストできます。

親UIViewのタッチポイントを検出してから、すべてのパイスライスを反復処理し、CGPathContainsPoint関数を使用して、その点がそのパイスライス内にあるかどうかをテストします。

関連する問題