0

ユーザーが円グラフのスライスをクリックすると、グラフから表​​示されるアニメーションの円グラフを作成しました。現在、パイの各スライスを異なるCGLayerに描画しています。ユーザーがスライスをタップすると、その特定のピクセルの色を選択し、対応するレイヤーを引き出すRGBコード(ハー​​ドコードされたもの)と一致させます。

コアプロットのようなサードパーティのグラフ作成ライブラリは使用したくありません。

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

ありがとう

4

3 に答える 3

3

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

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

于 2012-05-07T15:16:42.273 に答える
1

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

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

于 2012-12-12T11:13:50.750 に答える
0

CGを使用している場合は、ポイントがパス内にあるかどうかをテストできます。

CGPathContainsPoint ここでチェックアウトします。

于 2011-08-02T09:39:46.077 に答える