Я попытался добавить слой маски в UIImageView. Это изображение имеет изображение, а слой маски удерживает другое изображение, устанавливая его содержимое. Но когда я добавляю слой маски на слой изображения, слой маски не содержит никакого изображения. Уровень маски был инициализирован геттером. Маскирующий слой добавления метода ниже:Как установить содержимое CAShapeLayer, которое было сформировано UIBezierPath
- (void)circleButtonClicked{
self.maskLayer.contents = (id)[UIImage imageNamed:@"mask.jpg"].CGImage;
self.maskLayer.frame = CGRectMake(0, 0, kSCREEN_WIDTH, kSCREEN_WIDTH);
self.maskLayer.opacity = 0.5;
[self.imageView.layer addSublayer:self.maskLayer];
UIBezierPath * pPath = [UIBezierPath bezierPathWithArcCenter:self.imageView.center radius:(kSCREEN_WIDTH-100)/2 startAngle:0.0 endAngle:M_PI*2 clockwise:YES];
self.maskLayer.path = pPath.CGPath;
UIBezierPath * otherPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, kSCREEN_WIDTH, kSCREEN_WIDTH)];
self.maskLayer.path = otherPath.CGPath;
[otherPath appendPath:pPath];
self.maskLayer.path = otherPath.CGPath;
self.maskLayer.fillRule = kCAFillRuleEvenOdd;
}