一个简单的富文本标签

  • 先看看设计稿、


    18B9D3FF-D560-462F-94EA-660702034595.png

    需求是这个样子的,一段文字存在一些子串的颜色和文本颜色不一样
    那么我们需要的参数就是
    1.文本内容
    2.需要突出显示的文字(可能是多个)
    3.突出显示的文字颜色(可能是多个)

  • 头文件

/**
 *  富文本标签
 *
 *  @param frame               Frame
 *  @param txt                 整体内容
 *  @param attribuateText      需要突出显示的文字
 *  @param attribuateTextColor 需要突出显示的文字颜色
 *
 *  两个数组长度必须一致
 *  @return Instance
 */
- (instancetype)initWithFrame:(CGRect)frame
                         text:(NSString*)txt
               attribuateText:(NSArray*)attribuateText
          attribuateTextColor:(NSArray*)attribuateTextColor;
  • 具体实现
- (instancetype)initWithFrame:(CGRect)frame
                         text:(NSString*)txt
               attribuateText:(NSArray*)attribuateText
          attribuateTextColor:(NSArray*)attribuateTextColor
{
    if (self = [super initWithFrame:frame])
    {
        NSMutableAttributedString * attribuateStr = [[NSMutableAttributedString alloc] initWithString:txt];
        for (int i = 0; i<attribuateText.count; i++)
        {
            NSString * str = attribuateText[i];
            UIColor * color = attribuateTextColor[i];
            [attribuateStr addAttribute:NSForegroundColorAttributeName value:color range:[txt rangeOfString:str]];
        }
        [self setText:txt];
        [self setTextColor:[UIColor whiteColor]];
        [self setAttributedText:attribuateStr];
    }
    return self;
}
  • 这个里面还存在的问题
    1.两个数组参数未作类型的限制
    2.对两个数组长度的一致性未做处理
    3.填入attribuateText中的内容必须为txt的子串
    有需要的小伙伴可以自行加上去~
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,906评论 0 4
  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 10,088评论 0 11
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,786评论 4 61
  • 01. 傍晚,堂姐与堂姐夫,又开始吵吵闹闹。姐夫添了饭,把饭勺随便往灶台上一搁,自顾着狼吞虎咽起来。 正逢姐姐进厨...
    汗颜的泥巴阅读 2,586评论 4 6
  • 她在美国?而他在中国?8岁他和她分开了!过了很久他们再一次偶尔的一次他们见面了~在这次的见面他们又回到以前那个童年...
    cb6aeffc9f07阅读 1,405评论 0 1

友情链接更多精彩内容