我画了椭圆:
CGContextFillEllipseInRect(contextRef, CGRectMake(50, 50, 50, 128));
但我只需要一半椭圆,有没有办法剪掉另一半?
答案 0 :(得分:5)
在调用绘图方法之前,您可以将上下文剪切到椭圆的一部分:
CGContextSaveGState(contextRef);
BOOL onlyDrawTopHalf = YES;
CGFloat halfMultiplier = onlyDrawTopHalf ? -1.0 : 1.0;
CGRect ellipse = CGRectMake(50, 50, 50, 128);
CGRect clipRect = CGRectOffset(ellipse, 0, halfMultiplier * ellipse.size.height / 2);
CGContextClipToRect(contextRef, clipRect);
CGContextFillEllipseInRect(contextRef, ellipse);
// restore the context: removes the clipping
CGContextRestoreGState(contextRef);