大きな四角形の中に 3 つの CAShapelayers があります。大きな四角形の中に四角形と三角形があり、これらすべての CAShapelayers は画像の上に描画されます。大きな四角形をパターン画像で塗りつぶす必要がありますが、他の 2 つの形状はすべて塗りつぶす必要はありません。マスキング、evenodd ルールを試しました。助けてください。現在、私は正反対のことをしています。外側ではなく内側の層を埋める これが私がやっていることです
// mask layer is the outer layer
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.fillRule = kCAFillRuleEvenOdd;
maskLayer.frame = self.view.frame;
//inner layer1
CAShapeLayer *maskSubLayer1 = [CAShapeLayer layer];
maskSubLayer1.fillRule = kCAFillRuleEvenOdd;
maskSubLayer1.frame = self.view.frame;
//inner layer 2
CAShapeLayer *maskSubLayer2 = [CAShapeLayer layer];
maskSubLayer2.fillRule = kCAFillRuleEvenOdd;
maskSubLayer2.frame = self.view.frame;
//shapelayer and shapelayer 2 are the exact layer that are drawn inside
// add the paths to sublayers of the mask
maskSubLayer1.path = shapeLayer.path;
maskSubLayer2.path = shapeLayer2.path;
[maskLayer addSublayer:maskSubLayer1];
[maskLayer addSublayer:maskSubLayer2];
// masking the outer layer
biggershapeLayer.mask = maskLayer;
[biggershapeLayer setFillColor:[UIColor colorWithPatternImage:[UIImage imageNamed:[imagesArray objectAtIndex:indexPath.row]]].CGColor];
[self.view.layer addSublayer:biggershapeLayer];
*******************************************
* *
* *
* ******* ****** *
* ******** ****** *
* ******* ****** *
* ******* ****** *
* *
*******************************************
This is the current result I want the exact opposite.