美文网首页111iOS 富文本iOS富文本
iOS 好用的可以点击的富文本label ,可以点击的label

iOS 好用的可以点击的富文本label ,可以点击的label

作者: PittWong | 来源:发表于2017-01-20 17:08 被阅读5349次

    XXLinkLabel

    可以点击的富文本label

    觉得好用记得在github上给点个星星

    https://github.com/PittWong/XXLinkLabel

    使用说明

    超链接�富文本.png

    两种内容填充方式

    1.直接传入字符串,仅提供正则表达式的点击事件

    text_type.gif

    2.通过model传入,除正则表达式点击事件外,可提供图片的点击 同时可灵活设置图片大小和点击反馈字符串

    model_type.gif

    点击事件正则选择

    typedef NS_OPTIONS(NSUInteger, XXLinkLabelRegularType) {
        XXLinkLabelRegularTypeNone      = 0,
        XXLinkLabelRegularTypeAboat     = 1 << 0,//@类型
        XXLinkLabelRegularTypeTopic     = 1 << 1,//##类型  话题
        XXLinkLabelRegularTypeUrl       = 1 << 2,//url类型
    };
    label.regularType = XXLinkLabelRegularTypeAboat | XXLinkLabelRegularTypeTopic | XXLinkLabelRegularTypeUrl;
    
    

    可根据需要自由设置链接文字颜色

    @property (nonatomic ,strong) UIColor *linkTextColor;
    @property (nonatomic ,strong) UIColor *selectedBackgroudColor;
    

    自定义添加需要正则的点击事件

    [label addRegularString:@"美.*?女"];
    

    点击事件响应 提供block和代理两种方式,习惯用哪个用哪个

    代理:

    - (void)labelImageClickLinkInfo:(XXLinkLabelModel *)linkInfo {
        NSLog(@"----点击了图片----\n%@\n----对应反馈文字----\n%@",linkInfo.message,linkInfo.imageClickBackStr);
    }
    - (void)labelLinkClickLinkInfo:(XXLinkLabelModel *)linkInfo linkUrl:(NSString *)linkUrl {
        NSLog(@"----点击了链接,链接地址为----\n%@",linkUrl);
    }
    - (void)labelLinkLongPressLinkInfo:(XXLinkLabelModel *)linkInfo linkUrl:(NSString *)linkUrl {
        NSLog(@"----长按了(点击)-----\n%@",linkUrl);
    }
    - (void)labelRegexLinkClickWithclickedString:(NSString *)clickedString {
        NSLog(@"----点击了文字----\n%@",clickedString);
    }
    
    

    block:

            label.imageClickBlock = ^(XXLinkLabelModel *linkInfo) {
                NSLog(@"----点击了图片----\n%@\n----对应反馈文字----\n%@",linkInfo.message,linkInfo.imageClickBackStr);
            };
            label.linkClickBlock = ^(XXLinkLabelModel *linkInfo, NSString *linkUrl) {
                NSLog(@"----block点击了链接,链接地址为----\n%@",linkUrl);
            };
            label.linkLongPressBlock = ^(XXLinkLabelModel *linkInfo, NSString *linkUrl) {
                NSLog(@"----block长按了(点击)-----\n%@",linkUrl);
            };
            label.regularLinkClickBlock = ^(NSString *clickedString) {
                NSLog(@"----block点击了文字----\n%@",clickedString);
            };
    

    相关文章

      网友评论

      • 不会飞的宝哥:请问如何让这个label自适应宽度,比如一行显示不全自动换行。
      • ame017:您好,请问如何禁用label本身的点击事件呢?
        PittWong:@ame017 目前设计上无法禁用
        PittWong:@ame017 本身的点击事件按目前的设计是没有的,后续可以调整下,可以通过处理本身点击事件代理将事件传递出去曲线救国一下
      • 失控的疯子_6e4d:你好作者,XXLinkLabel 确实挺好的,但是如何设置行间距呢?
      • footSInRoad:请问你这个可以实现整个label都可以点击,并且点击的时候知道点击了哪一行并可以获得每一行的内容 可以么?
        footSInRoad:@PittWong O 谢啦!!
        PittWong:这个有点太定制化需求了,整体点击现在就可以,每一行的话技术上也不是问题,但那个通用性不强,暂时还没考虑
      • 流氓也斯文:你好,使用model来填充的话,怎么设置文字的行间距呢?
      • Andy_WangPeng:可以支持cocoapods么?
        PittWong:暂时还没,最近一直比较忙,等过段时间抽空把spec搞一下
      • 此用户名被使用:@里面不能出现符号哦 是个bug:grin:
        此用户名被使用:@PittWong 好像是标点符号都不行,太久了 忘了
        PittWong:是遇到什么符号出问题啦,我看下
      • EvenTime:如果是一串标签字符串能处理吗?用你这个。
        李小南:@_xiaoChun 你好, 怎么解决的啊?
        EvenTime:@PittWong html,现在已经解决了,:blush:
        PittWong:@世界的过客 什么类型的标签啊
      • SHyH5:楼主你好,我用了你的库,label在cell上面点击没有什么反应,是什么原因只有长按会输出。求解
        PittWong:@李小南 可以的,但需要单独响应一个block或者代理
        李小南:@PittWong 你好, 请问支持点击label时, 点击的不是高亮区域的时候, 能不能响应父控件
        PittWong:@SHyH5 整个label拦截了所有的事件,所以点击时优先于cell响应,给label整体点击block负值,或者代理来实现
      • 595adea54121:怎么用啊!
      • Amy_qinbu:当点击链接时它只走label被点击的block,不会走链接点击的block,怎么破
        595adea54121:怎么用啊 !
        PittWong:是不是没设置链接正则
      • Amy_qinbu:您好,请问如何使用您的框架完成我以下需求啊?
        要求: 拿到从后台返回的内容,从中解析出网址然后替换成对应的图片和文字,然后可以点击(效果和微博的网页链接一样)
        Amy_qinbu:@PittWong 但是你的readMe 写的不够详细,看你的案例代码没看明白,所以想直接请教你
        PittWong:@2017你好 用model就可以实现
      • Amy_qinbu:亲,现在能把您的框架更新下吗,急用哦
        Amy_qinbu:@PittWong 好的,谢谢哈
        PittWong:@2017你好 ok了,习惯用block就用labelClickedBlock,习惯用代理就用labelClickedWithExtend
      • Amy_qinbu:您好,使用了您的这个三方库,但是这个label会阻碍它父视图的点击事件响应,怎么处理啊
        Amy_qinbu:@PittWong 现在可以了吗
        Amy_qinbu:@PittWong 谢谢哈
        PittWong:@2017你好 添加了一个label被点击的block,还没同步上去代码,今晚同步一下就可以用了

      本文标题:iOS 好用的可以点击的富文本label ,可以点击的label

      本文链接:https://www.haomeiwen.com/subject/bstgbttx.html