我正在嘗試繪製一個半透明的黑色矩形,中間切出一個三角形。QuartzCore - 在多邊形中添加圓角
我可以用下面的代碼完美地工作。但是,我想繞過三角形的角落。
我已經嘗試了幾種不同的技術來添加圓角,例如爲筆畫設置CGContextSetLineCap,並通過創建我的石英路徑和使用CGContextAddArcToPoint,但我沒有得到任何工作。
正如我所提到的,下面的代碼適用於三角形切口。我如何繞過三角形的角落?
CGContextRef context = UIGraphicsGetCurrentContext();
CGPoint position = CGPointMake(rect.size.width/2, rect.size.height * .7);
CGSize size = CGSizeMake(rect.size.width*.8, rect.size.height*.5);
CGFloat firstPointX = (position.x - (size.width/2));
CGFloat firstPointY = (position.y - (size.height));
CGPoint firstPoint = CGPointMake(firstPointX, firstPointY);
CGFloat secondPointX = position.x + (size.width/2);
CGFloat secondPointY = position.y - (size.height);
CGPoint secondPoint = CGPointMake(secondPointX, secondPointY);
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:position];
[path addLineToPoint:firstPoint];
[path moveToPoint:firstPoint];
[path addLineToPoint:secondPoint];
[path addLineToPoint:position];
[path closePath];
CGContextAddRect(context, rect);
CGContextAddPath(context, path.CGPath);
CGContextEOClip(context);
UIColor *translucentColor = [UIColor colorWithWhite:0 alpha:0.5];
CGContextSetFillColorWithColor(context, translucentColor.CGColor);
CGContextFillRect(context, rect);
UIGraphicsEndImageContext();
編輯:這是我想要完成的一個例子。
確定 - 我已經刪除了我以前的答案,因爲我已經嘗試過了,而且似乎無法使其與裁剪一起工作。如果您敲擊路線,圓線加入正常工作。現在是凌晨4點。明天我會再次嘗試。 – 2013-03-16 04:10:43
你有沒有試過CGContextAddArc? – badweasel 2013-03-16 05:59:34