私はいくつかの描画を行うビューを持っています。ビューのレイヤーのサブレイヤーとしてシェイプ レイヤーを追加し、ビューのサブビューとして画像ビューを追加してから、画像ビューのレイヤーの角を曲げます。それはすべて完璧に機能します。
ここで、画像を動的に設定できるコレクションビューセルでこのビューを使用する必要があります。
draw rect で作業を実行すると、コレクション ビューがスクロールするにつれて、他のオブジェクトの上に何度も描画されます。
uiimage のセルにプロパティを作成し、それを imageview のイメージとして設定し、セッターで描画するなど、他にもいくつか試しました。
これを行う方法について誰か提案がありますか?
更新: ビューで行っていることの例を次に示します。
- (void)simplifiedDrawWithImage:(UIImage*)image
{
CAShapeLayer *circleLayer = [CAShapeLayer layer];
CGRect circleRect = self.bounds;
UIBezierPath *circlePath = [UIBezierPath bezierPathWithOvalInRect:circleRect];
circleLayer.path = circlePath.CGPath;
circleLayer.shadowOffset = CGSizeMake(0, shadowScale * length);
circleLayer.shadowOpacity = .5;
circleLayer.shadowRadius = shadowRadiusScale * length;
[self.layer addSublayer:circleLayer];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
// size appropriately
[self addSubview:imageView];
CALayer *imageLayer = imageView.layer;
[imageLayer setMasksToBounds:YES];
[imageLayer setCornerRadius:((imageView.frame.size.width - innerRing / 2) / 2)];
}