如何在ObjectiveC和Cocoa(在macOS,而不是iOS)上绘制半圆形的冒泡?目前,我能够制作一个非常简单的圆圈,符合我的需求:
NSRect rect = CGRectMake(location.x, location.y, 2*radius, 2*radius)
rect.cornerRadius = radius
这是一个完整的圆圈,但我如何制作一个完整阴影的半圆?我使用这种绘制圆圈的特殊方法的原因是因为我很容易添加" rect"到CAShapeLayer的框架,这是
的参数[[self layer] addSublayer:rect];
take,其中self引用当前的CocoaView。
示例:
最后,这需要在Core Animation中完成,而不是使用iOS框架(正如标签所暗示的那样)。
答案 0 :(得分:1)
这是使用UIBezierPath绘制弧的代码。 它不完全是你想要的,但你可以改变半径
- (void)drawRect:(CGRect)rect
{
UIBezierPath *blueHalf = [UIBezierPath bezierPath];
[blueHalf addArcWithCenter:CGPointMake(100, 100) radius:90.0 startAngle:-M_PI_2 endAngle:M_PI_2 clockwise:YES];
[blueHalf setLineWidth:4.0];
[[UIColor blueColor] setStroke];
[blueHalf stroke];
}
如果您想在Core Graphics中执行此操作:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 4);
CGContextSetStrokeColorWithColor(context, [[UIColor blueColor] CGColor]);
CGContextAddArc(context, 100, 100, 90, -M_PI_2, M_PI_2, FALSE);
CGContextStrokePath(context);
}