关闭

DTCoretext使用

6697人阅读 评论(2) 收藏 举报

介绍

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有三方面的内容DTAttributedTextView, DTAttributedLabelDTAttributedTextCell 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排版问题,另外也能更直接的就对一些区域进行时间监听。

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10728次
    • 积分:153
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    最新评论