1

私はiPadアプリケーションを開発しています。私のアプリケーションでは、ユーザーは画像を移動、回転、拡大縮小できます。画像に3Dの影付きの境界線を追加すると、画像が非常に重くなり、反応しなくなることに気づきました。このコードを使用して境界線を追加します。

self.layer.MasksToBounds = false;
self.layer.ShadowColor = [[UIColor alloc] initWithRed:0 green:0 blue:0 alpha:0.5].CGColor;
self.layer.ShadowOpacity = 1.0f;
self.layer.ShadowOffset = CGSizeMake(0, 2.5f);

なぜこれが起こるのですか?これを解決するにはどのような方法が必要ですか?

4

2 に答える 2

3

これは、CALayerシャドウでよく知られている問題です。プロパティも設定するshadowPathと、パフォーマンスが向上します。

シャドウパスは、画像ビューの境界のパスにすることができます。一度設定するだけで、画像が拡大縮小されるなど、レイヤー変換によって最新の状態に保たれます。

于 2012-05-26T17:05:06.703 に答える
2

また、設定する必要があります

self.layer.ShouldRasterize = YES

レイヤーをラスタライズします。これがNO(デフォルト)に設定されている場合、レイヤーに適用されるすべてのフィルターとシャドウが数回再計算されるため、パフォーマンスが大幅に低下します。特にスクロールビューまたはテーブルビューで。

于 2012-05-26T21:24:20.170 に答える