美文网首页iOS常用
iOS 富文本+点击事件

iOS 富文本+点击事件

作者: Bubble_ | 来源:发表于2020-09-03 13:46 被阅读0次
    UITextView *agreementTextView = [[UITextView alloc] init];
        [self.agreementView addSubview:agreementTextView];
        [agreementTextView autoPinEdge:ALEdgeLeft toEdge:ALEdgeRight ofView:self.agreementBtn];
        [agreementTextView autoAlignAxisToSuperviewMarginAxis:ALAxisHorizontal];
        agreementTextView.font = FONT_13;
        agreementTextView.text = agreementStr;
        agreementTextView.backgroundColor = [UIColor clearColor];
        agreementTextView.delegate=self;
        //必须禁止输入,否则点击将弹出输入键
        agreementTextView.editable=NO;
        agreementTextView.scrollEnabled=NO;
        
        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
        paragraphStyle.lineSpacing= 1;
        NSDictionary*attributes = @{NSFontAttributeName:FONT_13,
                                    NSParagraphStyleAttributeName:paragraphStyle};
        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:agreementTextView.text attributes:attributes];
        [attributedString addAttribute:NSLinkAttributeName value:@"yonghuxieyi://" range:NSMakeRange(6,6)];
        [attributedString addAttribute:NSLinkAttributeName value:@"yisizhengce://" range:NSMakeRange(13,6)];
        [attributedString addAttribute:NSForegroundColorAttributeName value:kColorWithRGBA(255, 255, 255, 0.5) range:NSMakeRange(0,agreementTextView.text.length)];
        agreementTextView.attributedText= attributedString;
        //设置被点击字体颜色
        agreementTextView.linkTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]};
    
    #pragma mark 富文本点击事件
    -(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction {
        if ([[URL scheme] isEqualToString:@"yonghuxieyi"]) {
            NSLog(@"富文本点击 用户协议");
            WebViewVC *vc = [[WebViewVC alloc] init];
            vc.url = [NSString stringWithFormat:@"%@%@", kApiBaseUrl, kAgreement];
            vc.title = kString(@"用户协议");
            [self.navigationController pushViewController:vc animated:YES];
        }
        else if ([[URL scheme] isEqualToString:@"yisizhengce"]) {
            NSLog(@"富文本点击 隐私政策");
            WebViewVC *vc = [[WebViewVC alloc] init];
            vc.url = [NSString stringWithFormat:@"%@%@", kApiBaseUrl, kAgreement];
            vc.title = kString(@"隐私政策(暂无)");
            [self.navigationController pushViewController:vc animated:YES];
        }
        return YES;
    }
    

    效果图

    截屏2020-09-03下午1.44.27.png

    相关文章

      网友评论

        本文标题:iOS 富文本+点击事件

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