美文网首页
iOS实现图文混排及点击事件和高亮背景。

iOS实现图文混排及点击事件和高亮背景。

作者: 浅月堂前 | 来源:发表于2018-12-23 00:16 被阅读64次

    通过CoreText和富文本,能够实现图文混排和点击事件。在实现点击事件时,能够对指定文本实现背景高亮。demo地址:https://github.com/lihui1314/LHTIViewT.git
    我做了一些简单的封装代码调用起来也很简单。LHTIView为展示类;LHCoreTextData图文解析类,LHImageData图片解析类,LHHighlight文字点击事件设置类。
    示例代码:

     LHHighlight*hightlight = [[LHHighlight alloc]init];
        hightlight.tapBackgroundColor = [UIColor lightGrayColor];//高亮背景
        hightlight.userInfo = @{@"name":@"lh"};
        hightlight.tapAction = ^(NSRange rang, id userInfo, NSString *str) {
            [self lh_arlert:userInfo[@"name"]];
        };//点击事件回调
     [muteStr lh_setHighlight:hightlight andRange:NSMakeRange(3, 24)];
    
     CGFloat width =  [UIScreen mainScreen].bounds.size.width-30;
     LHTIView*view = [[LHTIView alloc]initWithFrame:CGRectMake(15, 30,width, 0)];
    
     LHCoreTextData*coreData = [[LHCoreTextData alloc]initWithWidth:width];
     LHImageData*imageData = [[LHImageData alloc]initWithAttributes:atts viewWidth:width];
     imageData.image = [UIImage imageNamed:@"331545211074_.pic.jpg"];
     imageData.loction = 45;//图片插入位置
     imageData.imageInfo = @{@"name":@"331545211074_.pic.jpg"};
     coreData.imageDataArray = [NSMutableArray arrayWithObjects:imageData, nil];
     coreData.muteAttStr = muteStr;
    
     view.coreTextData = coreData;
     view.delegate = self;
     [self.view addSubview:view];
       
    

    图片点击代理方法:

    -(void)lh_didClickImage:(UIImage *)image info:(id)info{
        [self lh_arlert:info[@"name"]];
    }
    

    效果图


    1545495086050.jpg

    相关文章

      网友评论

          本文标题:iOS实现图文混排及点击事件和高亮背景。

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