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 回答