Objective c UIBezierPath是制作可移动圆形矩形的最佳方法吗?

Objective c UIBezierPath是制作可移动圆形矩形的最佳方法吗?,objective-c,cocoa-touch,rounded-corners,uibezierpath,Objective C,Cocoa Touch,Rounded Corners,Uibezierpath,我在白手起家做一个滑翔机。我开始制作一个圆角矩形,我使用下面的代码: CGRect frame = CGRectMake(10, 10, self.frame.size.width, 10); UIBezierPath* path = [UIBezierPath bezierPathWithRoundedRect:frame cornerRadius:10.0]; [[UIColor blueColor] setFill]; [path fill]; 我看到了一些其他的选项来制作一个圆角矩形

我在白手起家做一个滑翔机。我开始制作一个圆角矩形,我使用下面的代码:

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作为滑块的移动部分。在
视图.layer
中绘制滑块的通道,并添加一个子层,在其中绘制滑块的“拇指”。然后,您可以在需要移动拇指层时重新定位它。

谢谢。如果我改用CGRect,我还会每次都重新绘制或变换矩形吗?对不起,我意识到这是一个模糊的描述。我指的是使用CGContextMoveToPoint和cgContextAddArcTopoint之类的方法对不起,我不知道它叫什么,你每次都必须变换和重画矩形。