2011-11-13 23 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