可变字符串高亮加点击

    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做的,所以不接受用户交互,玩命点击都没触发高亮字体的点击效果,这是一个坑,注意注意.

你可能感兴趣的:(可变字符串高亮加点击)