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 CALayershadowRadius默认值为 3.0。虽然 UILabel 没有这个属性,但是否意味着阴影半径等于 0.0?

4

2 回答 2

2

UILabel的文档说:

文本阴影使用指定的偏移量和颜色绘制,没有模糊

所以,是的,阴影半径为 0。

于 2013-01-21T06:05:09.290 回答
2

只是一个建议 -QuartzCoreUITableView单元格中使用设置阴影会影响滚动性能。它绝对不会平滑滚动。

我建议您在 的UIImageView下方使用 aUILabel来获得相同的效果。它可能需要更多的工作来保持阴影图像随着设计的变化而更新,但如果它是在减少开发人员的工作量或改善用户体验之间进行权衡的话;我会倾向于后者 10 次中的 9 次...

于 2013-01-21T06:06:01.250 回答