UITextView解析HTML取出其中的图片放大展示

项目中遇到后台返回的html字符串,需要解析.最后发现只要用系统的UILabel和UITextView就可以实现.但是除了解析我们还需要监听图片点击放大.label 就不合适了.然后决定选用textView.很简单的就解析了.但是最后碰到难点就是如何监听其中的图片对象点击.刚开始想着是遍历字符串然后找到图片对象添加点击事件,发现异常繁琐.最后终于找到 了textfield有代理方法可以直接监听,废话不说,上代码.最后用MJ的图片浏览器展示即可.搞定收工!


   SDRichTextView *textView = [[SDRichTextView alloc] init];

    textView.backgroundColor = [UIColor clearColor];

    textView.textContainerInset = UIEdgeInsetsMake(0, 0, 0, 0);

    textView.frame = CGRectMake(12, 16, KScreenW - 2 * 12, 100);

    textView.attributedText = attributedString;

    textView.font = [UIFont systemFontOfSize:15];

    textView.delegate = self;

    textView.editable = NO;        //必须禁止输入,否则点击将弹出输入键盘

    textView.scrollEnabled = NO;

    [textView sizeToFit];

    [headView addSubview:textView];


// 监听文本附件点击

- (BOOL)textView:(UITextView *)textView shouldInteractWithTextAttachment:(NSTextAttachment *)textAttachment inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction

{

    //NSLog(@"Attachment:%@, characterRange:%@",textAttachment,NSStringFromRange(characterRange));

    //NSFileWrapper

    UIImage *image = [UIImage imageWithData:textAttachment.fileWrapper.regularFileContents];


//    NSString *url = [textAttachment.fileWrapper.symbolicLinkDestinationURL absoluteString];

//    NSLog(@"url:%@",url);

    if (image && image.classForCoder == [UIImage class]) {

        //NSLog(@"image:%@",image);

        // 显示照片

        MJPhoto *photo = [[MJPhoto alloc] init];

        photo.currentIndexItem = 1;

        photo.toolBarType = MJToolBarTypeShowPhotoBrowser;

        photo.image = image;

        // 显示相册

        MJPhotoBrowser *browser = [[MJPhotoBrowser alloc] init];

        browser.currentPhotoIndex = 0; // 弹出相册时显示的第一张图片

        browser.photos = @[photo]; // 设置所有的图片

        [browser show];

    }

    return YES;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,571评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,733评论 6 30
  • { 11、核心动画 需要签协议,但是系统帮签好 一、CABasicAnimation 1、创建基础动画对象 CAB...
    CYC666阅读 5,551评论 2 4
  • 1、设置UILabel行间距 NSMutableAttributedString* attrString = [[...
    十年一品温如言1008阅读 5,922评论 0 3
  • 补上昨天的笔记 这一章讲了W认为Prole可以轻而易举地blow Party,而这些proles却总为了微不足道的...
    Celia欢阅读 1,504评论 0 0

友情链接更多精彩内容