UIBezierPathは移動可能な丸い長方形を作成する最良の方法ですか?

私はゼロから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の中心プロパティを変更したいと考えています。これは可能ですか?

ベストアンサー

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

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

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です