DTCoretext使用

安装 git clone --recursive https://github.com/Cocoanetics/DTCoreText.git


DTCoretext在github上的地址https://github.com/Cocoanetics/DTCoreText

安装

官网github上的安装教程地址https://github.com/Cocoanetics/DTCoreText/blob/develop/Documentation/Setup%20Guide-template.markdown。我的项目是用git管理的,第一种方式是用cocoapods这个第三方管理库的工具去安装DTCoretext,很多人都诟病,所以放弃。 第二种方式是把DTCoretext作为一个子项目,这个方式比较多坑,看看唐巧这篇文章《Git Submodule的坑》http://blog.devtang.com/blog/2013/05/08/git-submodule-issues/,所以也不适用。
所以我自己找到适合自己项目的安装步骤是:

  • 在终端运行这两个命令 git clone --recursive https://github.com/Cocoanetics/DTCoreText.git Externals/DTCoreText 把DTCoretext的项目资源拷贝下来,然后把的.git文件都删掉。
  • 在自己的项目建一个名叫Externals的包,然后把DTCoretext的文件copy到项目文件Externals里面,最后,打开项目文件中的Externals里面的DTCoretext,把DTCoretext.xcodeproj拖到项目工城中。
  • 添加库
    • libDTCoreText.a (target from the DTCoreText sub-project)
    • libxml2.dylib
    • ImageIO.framework
    • QuartzCore.framework
    • CoreText.framework
    • MobileCoreServices.framework
  • 设置Header Search Paths 
  • 设置Linker Flags 如果xcode4.6之前的还需要添加-all_load.

使用DTAttributedTextCell

DTCoretext有三方面的内容DTAttributedTextViewDTAttributedLabel 和 DTAttributedTextCell。 DTAttributedTextCell是UITableViewCell的子类,可以看到关于它的方法和属性的官方文档https://docs.cocoanetics.com/DTCoreText/Classes/DTAttributedTextCell.html。它一般用在当列表中每个cell都有图文排版的情况。当每个cell的排版都能用html和css很方便排版的时候,那是比较容易处理的。但是我发现当css中display实现多个div标签在同一行的时候,这个css样式DT是不能解析的,是显示不了效果的。鉴于这个理由和一些别的点击事件需要,我用了另外一个方式去改良一下。
首先,我继承了DTAttributedTextCell这个类,取名叫MyCell吧。假如每个cell都有标题区和内容区,当然标题区可能还有作者信息,发表时间等,而且标题区还有点击事件。这样,内容区我会用html和css去排版,具体怎么排版就不多说,这样DT直接解析,而且空留一个空间给标题区,也就是用css把内容区往下移一些。
然后,我就可以用UIControl去显示标题区,然后直接insertSubview到MyCell的contentview上,但是,应该这样写 [self.contentView insertSubview:titleView aboveSubview:self.attributedTextContextView]; self指的是MyCell,titleView就是要标题区域的View。uicontrol可以直接写监听事件,这样就能解决DT不能解析的css排版问题,另外也能更直接的就对一些区域进行时间监听。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值