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