0

QuartzCore を使用して、UITableViewCell で UILabel シャドウを設定します。

cell.textLabel.layer.shadowColor = [[UIColor orange] CGColor];
cell.textLabel.layer.shadowOffset = CGSizeMake(0.0, 1.0);
cell.textLabel.layer.shadowRadius = 0.0;
cell.textLabel.layer.masksToBounds = NO;

しかし、パフォーマンスが遅いため、-(void)drawRect:(CGRect)rectメソッドを実装する必要があります。最近、UILabel のシャドウをプロパティで設定できることがわかりました。

cell.textLabel.shadowColor = [UIColor orangeColor];
cell.textLabel.shadowOffset = CGSizeMake(0.0, 1.0);

drawRect:ここで、実装を削除し、プロパティを介してシャドウを設定するだけです。

QuartzCore CALayer のshadowRadiusデフォルト値は 3.0 です。UILabel にはそのようなプロパティはありませんが、影の半径が 0.0 に等しいということですか?

4

2 に答える 2

2

UILabelのドキュメントには次のように書かれています。

テキストの影は、指定されたオフセットと色で、ぼかしなしで描画されます。

そうです、影の半径は 0 です。

于 2013-01-21T06:05:09.290 に答える
2

アドバイス -セルで使用QuartzCoreして影を設定すると、スクロールのパフォーマンスに影響します。UITableViewそれは間違いなくスムーズなスクロールではありません。

同じ効果を得るには、 のUIImageViewすぐ下を使用することをお勧めします。UILabelデザインの変更に合わせてシャドウ イメージを最新の状態に保つには、おそらくより多くの作業が必要ですが、開発者の労力を削減するか、ユーザー エクスペリエンスを向上させるかのトレードオフである場合は、10回中9回は後者に傾く…

于 2013-01-21T06:06:01.250 に答える