草庐IT

UIBezierPath

全部标签

ios - 为圆形 UIBezierPath 设置动画

我有一个项目,我根据设定的进度为UIBezierPath制作动画。BezierPath呈圆形,位于UIView中,现在使用CADisplayLink在drawRect中完成动画。简单地说,基于设定的进度x路径应该径向扩展(如果x比以前大)或收缩(如果x更小).self.drawProgress=(self.displayLink.timestamp-self.startTime)/DURATION;CGFloatstartAngle=-(float)M_PI_2;CGFloatstopAngle=((self.x*2*(float)M_PI)+startAngle);CGFloatcu

ios - 为什么CGSize类型的cornerRadii参数在-[UIBezierPath bezierPathWithRoundedRect :byRoundingCorners:cornerRadii:]?

我想不通...我在玩-[UIBezierPathbezierPathWithRoundedRect:byRoundingCorners:cornerRadii:]这样:bezierPath=[UIBezierPathbezierPathWithRoundedRect:CGRectMake(10,10,80,80)byRoundingCorners:(UIRectCornerBottomLeft)cornerRadii:CGSizeMake(20,20)];它按预期工作。但是,如果我将cornerRadii:CGSizeMake(20,20)替换为cornerRadii:CGSizeMa

iphone - 使用 elementCount 和 elementAtIndex 使 UIBezierPath 更像 NSBezierPath

当将一些Cocoa代码移动到CocoaTouch时,我失望地发现UIBezierPath缺少“访问路径元素”方法:–elementCount–elementAtIndex:–elementAtIndex:associatedPoints:–removeAllPoints–setAssociatedPoints:atIndex:在CocoaTouch中获取这些元素的唯一方法似乎是通过CGPathApply。在我尝试将其重新创建为UIBezierPath的子类或类别之前,我想知道这是否已经完成。有人知道这样的东西是否已经可用吗? 最佳答案

ios - UIBezierPath 描边 1px 线和填充 1px 宽度矩形 - 不同的结果。

这是一张简单的图-(void)drawRect:(CGRect)rect{//verticallinewith1pxstrokingUIBezierPath*vertLine=[[UIBezierPathalloc]init];[vertLinemoveToPoint:CGPointMake(20.0,10.0)];[vertLineaddLineToPoint:CGPointMake(20.0,400.0)];vertLine.lineWidth=1.0;[[UIColorblackColor]setStroke];[vertLinestroke];//verticalrectang

iphone - 如何使用 UIBezierPath 裁剪图像?

我想从UIBezierpath封闭路径获取图像(见图像)。我使用drawRect方法在UIView上绘制图像,并且使用drawRect方法绘制线条。我怎样才能得到特定的封闭路径图像?请帮我。提前致谢。此代码用于绘制bezierpath。UIBezierPath*aPath=[UIBezierPathbezierPath];for(NSString*pointStringinpointArray){if([pointArrayindexOfObject:pointString]==0)[aPathmoveToPoint:CGPointFromString(pointString)];el

ios - 将渐变颜色应用于使用 UIBezierPath 创建的圆弧

我想创建一个弧形的进度条。进度条的颜色必须根据值更改。我使用UIBezierPathbezierPathWithArcCenter创建了一个圆弧。我使用了以下代码:-(void)viewDidLoad{[superviewDidLoad];intradius=100;CAShapeLayer*arc=[CAShapeLayerlayer];arc.path=[UIBezierPathbezierPathWithArcCenter:CGPointMake(100,50)radius:radiusstartAngle:60.0endAngle:0.0clockwise:YES].CGPat

iphone - 为什么 UIBezierPath 比 Core Graphics 路径快?

我在研究绘制路径时发现,至少在某些情况下,UIBezierPath的性能优于我认为的CoreGraphics等价物。下面的-drawRect:方法创建了两条路径:一条UIBezierPath和一条CGPath。除了位置不同,路径完全相同,但抚摸CGPath的时间大约是抚摸UIBezierPath的两倍。-(void)drawRect:(CGRect)rect{CGContextRefctx=UIGraphicsGetCurrentContext();//Createthetwopaths,cgpathanduipath.CGMutablePathRefcgpath=CGPathCrea

ios - UIBezierPath addClip 和 drawRect

我知道有一种绘制圆角矩形的方法-UIBezierPath(roundedRect,cornerRadius)但我想知道如果我自己剪角,为什么我必须在绘制矩形之前添加Clip?(我觉得先画完再剪裁比较合理,漏了什么概念?)(一)工作overridefuncdrawRect(rect:CGRect){varclipPath=UIBezierPath(roundedRect:rect,cornerRadius:8.0)path.addClip()varrectPath=UIBezierPath(rect:rect)UIColor.redColor().setFill()rectPath.fi

swift - UIBezierPath 在右上角和右下角不起作用

我想将右角圆化,但只适用于左角letpath=UIBezierPath(roundedRect:view.bounds,byRoundingCorners:[UIRectCorner.TopLeft,UIRectCorner.TopRight],cornerRadii:CGSizeMake(20.0,20.0))letmaskLayer=CAShapeLayer()maskLayer.path=path.CGPathview.layer.mask=maskLayerview.layer.masksToBounds=true 最佳答案

ios - 如何向 UIBezierPath 自定义矩形添加圆角?

我设法创建了圆角,但我在处理第一个圆角(右下角)时遇到了问题问题:我可以在(moveToPoint)方法之前添加一个(addArcWithCenter)方法吗?如何去掉矩形开始处的直线(右下角)?这是我的自定义矩形代码和屏幕截图:letpath=UIBezierPath()path.moveToPoint(CGPoint(x:300,y:0))path.addArcWithCenter(CGPoint(x:300-10,y:50),radius:10,startAngle:0,endAngle:CGFloat(M_PI/2),clockwise:true)//1stroundedcor