比如要实现一个这种效果,当然可能有现成的第三方库,但是几行代码能搞定的就为了这一个功能导入一个库代价还是有点大,那么我们就来自己实现
代码很简单
/**
空心字体
@param str 文本
@param textColor 文本颜色
@param textBorderColor 文本边框颜色
@param strokeWidth 文件边框宽度
@return 文本
*/
+(NSMutableAttributedString *)textHollow:(NSString *)str textColor:(UIColor *)textColor textBorderColor:(UIColor *)textBorderColor strokeWidth:(CGFloat)strokeWidth
{
NSDictionary *dict = @{
NSStrokeColorAttributeName:textBorderColor,
NSStrokeWidthAttributeName : [NSNumber numberWithFloat:strokeWidth],
NSForegroundColorAttributeName:textColor
};
NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc] initWithString:str attributes:dict];
return attribtStr;
}
使用
self.progressLabel.attributedText = [NSString textHollow:[NSString stringWithFormat:@"%.0f",progress] textColor:_progressColor textBorderColor:[UIColor lightGrayColor] strokeWidth:-3];
需要注意的是:strokeWidth 要设置为负数,设置正数没有效果。
网友评论