什么是UILabel默认的shadowRadius?

时间:2013-01-21 05:59:45

标签: ios objective-c uilabel shadow quartz-core

我使用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?

2 个答案:

答案 0 :(得分:2)

documentation for UILabel说:

  

使用指定的偏移和颜色绘制文本阴影,不显示模糊

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

答案 1 :(得分:2)

只是建议 - 在QuartzCore单元格中使用UITableView设置阴影会影响滚动效果。它肯定不会平滑滚动。

我建议您使用UIImageView下面的UILabel来产生同样的效果。它可能更多的工作是保持阴影图像更新设计的变化,但如果在减少开发人员的努力或改善用户体验之间进行权衡;我会倾向于后10次中的9次......