我对核心图形非常陌生。
基本上我有一个绘制渐变背景的View,我试图用另一个创建这个视图的子类,然后在这个子类中绘制一个Triangle形状。
发生的是没有绘制渐变。我怀疑因为我的子类正在drawRect中绘制一个三角形(超级绘制其渐变)我的子类覆盖了drawRect方法,并且忽略了超级。
如何同时绘制渐变和三角形?
这是我的子类的drawRect
的代码- (void)drawRect:(CGRect)rect
{
// get the current content
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat buttonHeight = self.bounds.size.height;
CGFloat buttonWidth = self.bounds.size.width;
// draw triangle
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(buttonWidth / 2, buttonHeight * .75)];
[path addLineToPoint:CGPointMake(buttonWidth * .75, buttonHeight * .25)];
[path addLineToPoint:CGPointMake(buttonWidth * .25,buttonHeight * .25)];
CGContextAddPath(context, path.CGPath);
CGContextClip(context);
[_arrowColor set];
[path fill];
}
答案 0 :(得分:1)
如果你在子类'drawRect:的开头调用[super drawRect:rect];
,那么它首先绘制渐变,然后是三角形。