2011-11-13 21 views
0

私はゼロからUISliderを作っています。私は角の丸い四角形を作るためにいくつかの他のオプションを見ましたが、これは最も簡単な方法だと思ったUIBezierPathは移動可能な丸い四角形を作成する最良の方法ですか?

CGRect frame = CGRectMake(10, 10, self.frame.size.width, 10); 

UIBezierPath* path = [UIBezierPath bezierPathWithRoundedRect:frame cornerRadius:10.0]; 
[[UIColor blueColor] setFill]; 
[path fill]; 

:私は、私は以下のコードを使用した角の丸い四角形を作ることから始めました。 UIBezierPathを使用することに何らかの制限がありますか?つまり、タッチイベントが発生したときにスライダを移動できる必要があるため、BezierPathの中心プロパティを変更したいと考えています。これは可能ですか?

答えて

0

スライダの位置を変更するたびにベジェパスを再作成するか、CGContextの変換マトリックスを使用して別の場所に描画する必要があります。

スライダーの可動部分にCALayerを使用することをお勧めします。スライダのチャンネルをview.layerに描画し、スライダの「親指」を描くサブレイヤを追加します。サムレイヤーを移動する必要がある場合は、サムレイヤーの位置を変更するだけです。

+0

ありがとうございました。代わりにCGRectを使用すると、矩形を再描画するか、毎回変換する必要がありますか? – Mahir

+0

申し訳ありませんが、わかりましたが、これはあいまいな説明でした。 CGContextMoveToPointやCGContextAddArcToPointのようなメソッドを使用していました。 – Mahir

+0

申し訳ありませんが、何が呼び出されたのか分かりません。 – Mahir

関連する問題