首页 > 代码库 > iOS图文混排的几种方式

iOS图文混排的几种方式

  最近优化升级了之前做的一个项目,现在这一期已接近尾声了,今天可以腾出些时间总结一下最近项目中用的比较多的图片文字混排显示的内容。现在遇到比较多的图文混排的基本有三种:一种是在标签中显示 价格符号+价格+某种内部项目单位(如粮票符号)+数量,这种在项目中用的比较多些;第二种是商品详情中展示一段文字+一组图片或者是,一段文字+一张图片的数组形式展示,这种在详情中用的也不少;还有一种的和第二种类似,像是网页中的东西,这里就不多说了;下面说说前两种比较常用的图文混排展示的方式;

  1、技术分享,在标签中显示价格单位+价格+项目内部单位符号+数量的一种方式;这种方式用的还是比较多的,一种比较简单的方式是从网上可以找到第三方支持图片显示的控件,像是CTTextDisplayView-master,在cocoaChina或者Code4App上面可以搜索的到,里面封装了一个view类型的cell对象,支持图片、文字、超链接、@某人技术分享等效果,需要的话可以自己去下载,用了一次效果还是不错的,功能很强大,还支持对指定文本字段的点击效果;另外一种方式是可以在UILabel标签中通过对标签的重绘,也可以实现同样的效果;废话不多说直接上代码了。

      NSString *temStr = [NSString stringWithFormat:@"¥%.2f + ",[price floatValue]-[score floatValue]];

                NSTextAttachment* attach = [[NSTextAttachment alloc] init];

                attach.image = [UIImage imageNamed:@"P灰色列表粮票符号.png"];

                NSAttributedString* attStr1 = [NSAttributedString attributedStringWithAttachment:attach];

                NSMutableAttributedString* attStr = [[NSMutableAttributedString alloc] initWithAttributedString:attStr1];

                NSMutableAttributedString *strMatt = [[NSMutableAttributedString alloc] initWithString:temStr];

                //在图片前面插入一段文字

                [attStr insertAttributedString:strMatt atIndex:0];

                //在图片后面追加一段文字

                [attStr appendAttributedString:[[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%.2f",[score floatValue]]]];

                //设置图片的大小

                attach.bounds = CGRectMake(0, 0, 8, 9);

                cell.lblrealprice.attributedText = attStr;

2、在详情中实现图文混排的方式技术分享,或者是一段文字+一张图片作为一个整体的一组展示;前面的这种需要实现文本高度的动态判断,然后根据图片数组的个数动态的计算整体的高度和图片显示的位置即可,当然还有个查看大图的效果这里就不详细叙述了。第二种可以将标签、图片封装成一个cell动态判断每一个cell的文本高度+图片是否存在即可;

iOS图文混排的几种方式