私はコアグラフィックスに非常に慣れていません。
基本的に、グラデーションの背景を描画するビューがあり、このビューのサブクラスを別のビューで作成し、このサブクラスで三角形を描画しようとしています。
何が起こるかというと、グラデーションが描画されていないということです。サブクラスが 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];
}