0

UISliderを最初から作成しています。角の丸い長方形を作成することから始めました。これは、以下のコードを使用して行いました。

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のcenterプロパティを変更したいと思います。これは可能ですか?

4

1 に答える 1

1

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

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

于 2011-11-13T04:07:22.633 に答える