1

画面上でドラッグする CALayer があります。レイヤーに影が欲しいので、影を作成してビットマップにラスタライズします。影のあるラスタライズされたバージョンをドラッグすると、影のない画像と同じパフォーマンスが得られることを期待していましたが、それはさらに悪いことです。画像がラスタライズされている場合、なぜ悪化するのですか? パフォーマンスを著しく低下させずに影を追加するより良い方法はありますか? 次のようにシャドウとコンテンツを作成します。

layer.contents = (id) [UIImage imageNamed:[dict objectForKey:@"imageURI"]].CGImage;
layer.shadowColor = [UIColor blackColor].CGColor;
layer.shadowOpacity = .5;
layer.shouldRasterize = YES;
layer.rasterizationScale = [[UIScreen mainScreen] scale];
4

1 に答える 1

2

CALayer シャドウを使用する場合は、shadowPathプロパティを使用する必要があります。次のように使用します。

layer.shadowPath = [UIBezierPath bezierPathWithRect:layer.bounds].CGPath;
于 2012-10-19T16:23:47.627 に答える