美文网首页
iOS 富文本之图文混排之编辑

iOS 富文本之图文混排之编辑

作者: 安静就好_ | 来源:发表于2018-05-24 19:33 被阅读86次

    插入图片,上传服务器 看这里
    直接上代码了。

    1.把需要编辑的内容里面的照片过滤出来

    - (NSArray *) getImageurlFromHtml:(NSString *) webString
    
    {
        
        NSMutableArray * imageurlArray = [NSMutableArray arrayWithCapacity:1];
        
        //标签匹配
        
        NSString *parten = @"<img(.*?)>";
        
        NSError* error = NULL;
        
        NSRegularExpression *reg = [NSRegularExpression regularExpressionWithPattern:parten options:0 error:&error];
        
        NSArray* match = [reg matchesInString:webString options:0 range:NSMakeRange(0, [webString length] - 1)];
        
        for (NSTextCheckingResult * result in match) {
            
            //获取数组中的标签
            
            NSRange range = [result range];
            
            NSString * subString = [webString substringWithRange:range];
            
            //从图片中的标签中提取ImageURL
            
            NSRegularExpression *subReg = [NSRegularExpression regularExpressionWithPattern:@"http://[^'|\"|\\s|>]*" options:0 error:NULL];
            
            NSArray* match = [subReg matchesInString:subString options:0 range:NSMakeRange(0, [subString length] - 1)];
            
            NSTextCheckingResult * subRes = match[0];
            
            NSRange subRange = [subRes range];
            
            subRange.length = subRange.length ;
            
            NSString * imagekUrl = [subString substringWithRange:subRange];
            
            //将提取出的图片URL添加到图片数组中
            
            [imageurlArray addObject:imagekUrl];
            
        }
        
        return imageurlArray;
        
    }
    

    2.因为把html 转成富文本(转完之后 图片attechment里面的userinfo是空的),所以需要给userinfo附上值,也就是上面获取的image

    - (void)handlerAllAttechmentWith:(NSAttributedString *)StringString withimagesArr:(NSArray *)imageUrl{
        
        NSMutableArray *attachmentArr=[NSMutableArray array];
        
        NSRange effectiveRange = NSMakeRange(0, 0);
        
        while (effectiveRange.location + effectiveRange.length < StringString.length) {
            
            NSDictionary *attributes = [StringString attributesAtIndex:effectiveRange.location effectiveRange:&effectiveRange];
            
            NSTextAttachment *attachment = attributes[@"NSAttachment"];
            
            if (attachment) {
                
                [attachmentArr addObject:attachment];
                
            }
            
            effectiveRange = NSMakeRange(effectiveRange.location + effectiveRange.length, 0);
            
        }
        
     
        if (attachmentArr.count == imageUrl.count) {
            
            for (int i=0; i<attachmentArr.count; i++) {
                
                NSTextAttachment *att=attachmentArr[i];
                
                //userinfo这个属性是延展,看上一篇
                att.userInfo= imageUrl[i];
                
        
            }
            
        }
    }
    

    3.接下来的操作,按照插入图片,上传服务器走就可以。

    在这里,只是简单实现图片的更换,文字的修改。涉及到字体大小,颜色等操作,后期慢慢加入。

    相关文章

      网友评论

          本文标题:iOS 富文本之图文混排之编辑

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