Closed 100mango closed 8 years ago
嗯。。第一种貌似是有 bug。。我改一下。。
YYText 的阴影,是绘制成图片的,所以超出视图范围的部分是不会有阴影的。解决方法有两个:
用 CALayer 的 shadow 属性,但这会降低图形性能。
ibireme君。
测试了一下直接设置layer的shadow相关属性,没有效果。
是否可以考虑在YYTextDrawShadow
根据shadow的半径来适当扩大边距和修改偏移point。
这样和clipToBounds应该就无缝连接了,同时不需要使用者修改其他属性。
CALayer 的 shadow 属性是由系统支持的,下面是我的测试代码:
label.layer.shadowColor = [UIColor blackColor].CGColor;
label.layer.shadowOffset = CGSizeMake(0, 1);
label.layer.shadowRadius = 3;
label.layer.shadowOpacity = 0.5;
CALayer 这个阴影,应该是由 GPU 绘制的,能溢出到视图外。但是文本显示的时候,最终是绘制成 CGImage 的,如果想要扩大阴影范围,那需要更大的画布和更多的内存。这很难把 CGImage 按那种模式放入视图来显示,另外阴影的边界也非常难以确定。。
UILabel 显示 attributedText 中的 NSShadow 时,也是这样。。
两种设置阴影的方式
1.
2.
第一种没有效果 第二种有效果
如果阴影超出Label bounds,阴影被截。 已设置