美文网首页
可变字符串高亮加点击

可变字符串高亮加点击

作者: aven_kang | 来源:发表于2018-05-16 14:05 被阅读108次

        NSString *text = @"为您推荐了**医生,三甲全科教授医生,查看医生介绍。";

        NSMutableAttributedString *one = [[NSMutableAttributedString alloc] initWithString: text];

        /**

         *  设置整段文本size

         */

        one.yy_font = [UIFont systemFontOfSize:15];

        /**

         *  获得range, 只设置标记文字的size、下划线

         */

        NSRangerange = [textrangeOfString:@"**"];

        [oneyy_setTextUnderline:[YYTextDecoration decorationWithStyle:YYTextLineStyleSingle] range:range];

        [oneyy_setFont:[UIFontsystemFontOfSize:15]range:range];

        /**

         *  被标记的文字颜色

         */

        UIColor *textColor = [UIColor colorWithRed:0.093 green:0.492 blue:1.000 alpha:1.000];

        /**

         *  被标记文字点中后的背景颜色,会闪现一下

         */

       // UIColor *tapedBackgroundColor = [UIColor colorWithWhite:0.000 alpha:0.220];

        /**

         *  标记文字点击事件

         */

        [oneyy_setTextHighlightRange:rangecolor:textColorbackgroundColor:niltapAction:^(UIView*_NonnullcontainerView,NSAttributedString*_Nonnulltext,NSRangerange,CGRectrect) {

             NSLog(@"高亮1");

            // 点击就是跳转超链接了,在这里我输出标记文字

    //        [self showMessage:[NSString stringWithFormat:@"%@, 字体大小: 30", [text.string substringWithRange:range]]];

        }];

        // 再标记一段文字

        NSRangeotherRange = [textrangeOfString:@"查看医生介绍"];

        [oneyy_setFont:[UIFontsystemFontOfSize:15]range:otherRange];

       [oneyy_setTextHighlightRange:otherRangecolor:textColorbackgroundColor:niltapAction:^(UIView*_NonnullcontainerView,NSAttributedString*_Nonnulltext,NSRangerange,CGRectrect) {

         //  [self showMessage:[NSString stringWithFormat:@"%@, 字体大小: 20", [text.string substringWithRange:otherRange]]];

            NSLog(@"dic: %@", [textyy_fontAtIndex:otherRange.location]);

        }];

        self.chatLb.attributedText = one;

    }

    - (YYLabel*)chatLb {

        if(!_chatLb) {

            _chatLb= [[YYLabelalloc]init];

            _chatLb.font = [UIFont systemFontOfSize:15];

            _chatLb.textAlignment = NSTextAlignmentCenter;

            _chatLb.textVerticalAlignment = YYTextVerticalAlignmentCenter;

            _chatLb.numberOfLines = 0;

            _chatLb.text = @"就诊信息已提交,这是您的就诊信息";

            [_chatLb becomeFirstResponder];

        }

        return _chatLb;

    }

    注意,如果你的YYLabel是加载在UIView或者UIimageView这些控件上,是不会触发点击效果的,因为父视图本身就不接受交互,你得先打开父视图的交互

    图一

    图一里面,我是放在气泡里面的,由于气泡就是用UIImageView做的,所以不接受用户交互,玩命点击都没触发高亮字体的点击效果,这是一个坑,注意注意.

    相关文章

      网友评论

          本文标题:可变字符串高亮加点击

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