博客> 几种文字阴影的生成
几种文字阴影的生成
2017-11-23 14:01 评论:0 阅读:1397 lvhahaha
YYText 文字阴影shadow

一般在项目使用过程中会要求文字的阴影。 对于UILabel来说,设置文字的阴影有几种方法。

第一种是直接设置UILabel中的shadowColor和shadowOffset属性,但是这种做法有个问题,就是阴影没有模糊效果,并且无法设置阴影的宽度等等,比较具有局限性。

UILabel *testLabel = [[UILabel alloc]initWithFrame:CGRectMake(100, 60, 300, 40)];
testLabel.text = @"文字阴影效果";
//阴影颜色
testLabel.shadowColor = [UIColor blackColor];
//阴影偏移  x,y为正表示向右下偏移
testLabel.shadowOffset = CGSizeMake(1, 1);
[self.view addSubview:testLabel];

第二种,通过设置UILabel中的attributedText来给文字添加阴影,这样就能添加更多的效果。对属性字符串添加名为NSShadowAttributeName的属性

+ (NSMutableAttributedString *)setUpShadowText:(NSString *)text color:(UIColor *)color start:(int)start 
length:(NSInteger)length { 
NSShadow *shadow = [[NSShadow alloc]init];
shadow.shadowBlurRadius = 1.0;
shadow.shadowOffset = CGSizeMake(1, 1);
shadow.shadowColor = color;

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text];
[attributedString addAttribute:NSShadowAttributeName
                         value:shadow
                         range:NSMakeRange(start, length)];

return attributedString;   }

第三种就是使用YYLable,设置NSMutableAttributedString,并且使用YYTextShadow这个对象进行阴影效果的设置。YYLabel 通过复写 UIView 的 display 方法,来异步绘制自己的阴影等各种效果,阴影效果先保存在了 YYLabel 的 attributedText 里的 attribute 中,在 display 中绘制的时候再取出来,绘制的时候用了系统的 CoreGraphics 框架。

所以理清了一些思路后,会发现,真正强大的是什么?一边是把这么多效果、异步调用等组织起来,一边是对底层 CoreGraphics 框架熟练运用。 http://blog.csdn.net/zhonggaorong/article/details/51482738。 YYTextShadow的详细解析。

所以我支持使用YYLable进行文字的阴影设置。

NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:roomName];
str.yy_font = [UIFont systemFontOfSize:11];
str.yy_color = [UIColor whiteColor];
YYTextShadow *shadow = [YYTextShadow new];
shadow.color = [UIColor blackColor];
shadow.offset = CGSizeMake(1, 1);
shadow.radius = 1;
str.yy_textShadow = shadow;
_roomName.attributedText = str;

总结。特别是在列表的使用文字阴影(图片帧率太低,在列表滑动的时候会很卡),第一种方法不可取,第二种方法要进行异步设置NSMutableAttributedString,然后再加载到lable上(帧率是会有一定的提升)。使用YYlable也是最好的,帧率得到很大提升。柔顺丝滑!YYText很强大,多多学习。

收藏
2
sina weixin mail 回到顶部