IOS开发之UIWebView实际应用(一)

最近做项目,需要展示100楼数量的楼层,楼层中有语音、静态图片、动态图片和大量的文字其中的一样或多样同时出现以及图文混排等等,而且有些楼层还超级长,在需求上来看还需要设置显示字体的大小,更改主题模式等。看到这些需求,想到第一个方案是UITableView,但是如果Cell的高度超出屏幕可视范围很多倍的话,UITableView一次渲染花销的内存就会增大。第二个方案是使用UIWebView,UIWebView的渲染范围是根据它自身的frame大小决定的,这样遇上超长的楼层渲染所花销的内存就要比UITableView小很多了。

我一开始的想法是先根据共有特点设计每一层楼层的html本地文件和一个总的css:

<!--正文页body标签中的内容-->

<div class="top">
<!--标题部分-->
<div class="c1">
    <div class="c1-title" id="title">title</div>
</div>
<!--楼主楼层-->
<div class="c2" id="louzhu_div">
    <div>
        <p>username</p>
    </div>
    <div class="c2-content" id="louzhu_content">louzhu_content</div>
</div>
<!--回复楼层-->
<div id="replys" style="text-align:center;">replys</div>
</div> 
<!--底部提示-->
<div class="bottom" style="display:$bottom_tips_display$;">
    <div class="bottom-text">
        <p>page_num_count</p>
    </div>
</div>

首先定义了标题和楼主楼层的html,因为帖子中标题是特别部分并且楼主楼层紧跟其后所以要单独拿出来设计。

louzhu_content是楼主发表的内容,内容中可能带有图片地址,视频地址,语音地址等等,这个就需要用到正则表达式等处理为你需要的html字符串格式,这里就不详细陈述了。

//替换连续换行为一个换行等
body=[body stringByReplacingOccurrencesOfRegex:@"(<br/>(\\s*<br/>)+)" withString:@"<br/>"];
body=[body stringByReplacingOccurrencesOfRegex:@"(\n(\\s*\n)+)" withString:@"\n"];


文字等处理好之后就替换掉上面写好的html内容作为一个字符串,然后用UIWebView加载整个字符串,就得到需要的楼主楼层了。

然后大概流程就完成了,加载速度也很快,下一章讨论展示后处理点击按钮,语音、图片批量下载等实现。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值