2011-09-15 13 views
3

iOSに円形の評価メーターを作成する必要があります.UISliderのように円の周りに3/4しか曲がっていません。アンカーポイントの周りにUIImageView(定格針)を回転させる必要があります。針の先端に続く目に見えない接触可能なハンドル領域をドラッグします。針の角度によって値が決まります。iOSアンカーポイントを中心にビューを回転してタッチします。

私は洗練されたソリューションを見つけるのに苦労しています。何かご意見は?

答えて

6

UIImageViewの下層のanchorPointプロパティを使用してみましたか?

CGRect imageBounds = self.needleImageView.bounds; 
[self.needleImageView.layer setAnchorPoint:CGPointMake(rotationPoint.x/imageBounds.size.width, rotationPoint.y/imageBounds.size.height)]; 


は、画像ビューのcenterプロパティに設定されていることを確認:あなたはそれを回転させることである、その周囲(あなたのイメージビューの座標での、)ポイントを表すCGPointを持っている場合は、レイヤーのアンカーポイントを設定することができますあなたは層の適切にアクセスするために<QuartzCore/QuartzCore.h>をインポートする必要があることを忘れないでください

self.needleImageView.transform = CGAffineTransformRotate(self.needleImageView.transform, angleInRadians); 


を:適切な位置も、その後、回転はレイヤーのアンカーポイントを中心に回転するように変換を適用ネクタイ。

+0

どのようにして、針がタッチ位置に向くようにしてから、タッチ位置がドラッグするように進むことができますか?私はあなたが古き良き時代を打ち砕く時が来るのではないかと恐れています。 – jmcopeland

+0

@jmcopeland:はい、trigは私によく聞こえます(まあ...あなたは私が何を意味するか知っています)。あなたは角度を見つけることは自明でなければならないので、回転点からのxとyの平行移動を知っています。回転が0から2πではなく-πから+πまで作用するという事実を説明する必要があるかもしれないことに注意してください。また、ゼロ除算エラーの場合に 'tan(x)= opp/adj'を使うのは避けたいです。 – Stuart

+0

こんにちはスチュアート、私はあなたが上で解決したsimmilar問題で立ち往生しています、あなたはチャットしてください – Zubair

関連する問題