0

ビューセルをカスタマイズしたテーブルビューがあり、それらに影を描きたいです。私はすでにビューのレイヤーを使用していますが、この方法で影を描くと、テーブルビューが非常に遅くなります。これはコードです:

UIView  *foreground             = [[UIView alloc] initWithFrame:CGRectMake(8., 8., 305, 290.)];
foreground.tag                  = kForegroundTag;
foreground.backgroundColor      = [UIColor whiteColor];
/* Draw from here */
foreground.layer.shadowColor    = [UIColor blackColor].CGColor;
foreground.layer.shadowOpacity  = 0.7;
foreground.layer.shadowOffset   = CGSizeMake(0., 1.);
foreground.layer.shadowRadius   = 3.;

助けてくれてありがとう

4

1 に答える 1

0

これらのプロパティを使用して影を描画すると、パフォーマンスが低下する可能性があります。ただし、いくつかのオプションがあります。

レイヤーを再描画の代わりにビットマップとしてレンダリングするようにレイヤーを変換するように設定できshouldRasterizeます (注意: これは、ビューを頻繁に再描画する必要がない場合にのみ有用であり、使用すると既存のパフォーマンスよりも悪くなる可能性があります間違ったシナリオで)

もう 1 つのオプションはshadowPath、レイヤーのプロパティも使用することです。CALayerドキュメントによると:

通常、明示的なパスを指定すると、レンダリングのパフォーマンスが向上します

私は間違いなくshadowPathプロパティを使用し、ビューの性質によってはshouldRasterizeフラグも設定する可能性があります

于 2012-08-29T22:17:13.943 に答える